800
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

local oGrid,rs,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).SortOrder = 1
oGrid.EndUpdate()
oGrid.BeginUpdate()
oGrid.EnsureVisibleColumn(0)
var_Items = oGrid.Items
	// var_Items.ExpandItem(var_Items.FirstVisibleItem) = false
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ExpandItem(FirstVisibleItem) = False]
	endwith
oGrid.EndUpdate()

799
Is there any public method to export the selected data

local oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Columns = oGrid.Columns
	var_Columns.Add("C1")
	// var_Columns.Add("C2").FormatColumn = "1 index `A-Z`"
	var_Column = var_Columns.Add("C2")
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.FormatColumn = "1 index `A-Z`"]
	endwith
	// var_Columns.Add("C3").FormatColumn = "100 index ``"
	var_Column1 = var_Columns.Add("C3")
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.FormatColumn = "100 index ``"]
	endwith
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	// var_Items.SelectItem(var_Items.AddItem("Item 2")) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.SelectItem(AddItem("Item 2")) = True]
	endwith
	var_Items.AddItem("Item 3")
oGrid.EndUpdate()
? "Export CSV Selected Items Only:" 
? Str(oGrid.Export("","sel")) 

798
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

local oGrid

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ScrollBars = 15
oGrid.Template = [ScrollPartVisible(0,65536) = True] // oGrid.ScrollPartVisible(0,65536) = true
oGrid.Template = [ScrollPartVisible(1,65536) = True] // oGrid.ScrollPartVisible(1,65536) = true
oGrid.Template = [ScrollPartVisible(2,65536) = True] // oGrid.ScrollPartVisible(2 /*0x2 | */,65536) = true
oGrid.ScrollWidth = 4
oGrid.Template = [Background(276) = 15790320] // oGrid.Background(276) = 0xf0f0f0
oGrid.Template = [Background(260) = 8421504] // oGrid.Background(260) = 0x808080
oGrid.ScrollHeight = 4
oGrid.Template = [Background(404) = Background(276)] // oGrid.Background(404) = oGrid.Background(276)
oGrid.Template = [Background(388) = Background(260)] // oGrid.Background(388) = oGrid.Background(260)
oGrid.Template = [Background(511) = Background(276)] // oGrid.Background(511) = oGrid.Background(276)
oGrid.EndUpdate()

797
I need to format a Column with Currency Format, but we use we are using Dhirams (AED)for the Amount. How to do this

local h,oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
var_Columns = oGrid.Columns
	var_Columns.Add("Name")
	var_Column = var_Columns.Add("Currency")
		var_Column.SortType = 1
		var_Column.AllowSizing = false
		var_Column.Width = 64
		var_Column.FormatColumn = "currency(value)"
	var_Column1 = var_Columns.Add("Format")
		var_Column1.SortType = 1
		var_Column1.AllowSizing = false
		var_Column1.Width = 64
		var_Column1.FormatColumn = "`AED ` + (value format ``)"
var_Items = oGrid.Items
	h = var_Items.AddItem("Value 1")
	// var_Items.CellValue(h,1) = 10
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = 10]
	endwith
	// var_Items.CellValue(h,2) = 10
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = 10]
	endwith
	h = var_Items.AddItem("Value 2")
	// var_Items.CellValue(h,1) = 20
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = 20]
	endwith
	// var_Items.CellValue(h,2) = 20
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = 20]
	endwith
oGrid.EndUpdate()

796
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

local oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Car")
		var_Column.DisplayFilterButton = true
		var_Column.FilterType = 240
		var_Column.Filter = "MAZDA"
	var_Column1 = var_Columns.Add("Equipment")
		var_Column1.DisplayFilterButton = true
		var_Column1.DisplayFilterPattern = false
		var_Column1.CustomFilter = "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
		var_Column1.FilterType = 3
		var_Column1.Filter = "AIR BAG"
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "Air Bag"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Toyota"),1) = "Air Bag,Air condition"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Toyota"),1) = "Air Bag,Air condition"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Ford"),1) = "Air condition"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Ford"),1) = "Air condition"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Nissan"),1) = "Air Bag,ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Nissan"),1) = "Air Bag,ABS,ESP"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag, ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "Air Bag, ABS,ESP"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "ABS,ESP"]
	endwith
oGrid.ApplyFilter()
oGrid.EndUpdate()

795
How can I have a case-sensitive filter

local oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Car")
		var_Column.DisplayFilterButton = true
		var_Column.FilterType = 496 /*exFilterDoCaseSensitive | exFilter*/
		var_Column.Filter = "Mazda"
	var_Column1 = var_Columns.Add("Equipment")
		var_Column1.DisplayFilterButton = true
		var_Column1.DisplayFilterPattern = false
		var_Column1.CustomFilter = "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
		var_Column1.FilterType = 259 /*exFilterDoCaseSensitive | exPattern*/
		var_Column1.Filter = "Air Bag"
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "Air Bag"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Toyota"),1) = "Air Bag,Air condition"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Toyota"),1) = "Air Bag,Air condition"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Ford"),1) = "Air condition"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Ford"),1) = "Air condition"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Nissan"),1) = "Air Bag,ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Nissan"),1) = "Air Bag,ABS,ESP"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "Air Bag, ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "Air Bag, ABS,ESP"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Mazda"),1) = "ABS,ESP"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Mazda"),1) = "ABS,ESP"]
	endwith
oGrid.ApplyFilter()
oGrid.EndUpdate()

794
How can I exclude an item from aggregate/total computation

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
// oGrid.Columns.Add("Default").Def(17) = 1
var_Column = oGrid.Columns.Add("Default")
with (oGrid)
	TemplateDef = [dim var_Column]
	TemplateDef = var_Column
	Template = [var_Column.Def(17) = 1]
endwith
var_Items = oGrid.Items
	// var_Items.LockedItemCount(0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(0) = 1]
	endwith
	h = var_Items.LockedItem(0,0)
	// var_Items.CellValue(h,0) = "sum(all,rec,%0)"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,0) = "sum(all,rec,%0)"]
	endwith
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.FormatCell(h,0) = "`Sum: ` + (value format ``) "
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`Sum: ` + (value format ``) "]
	endwith
	var_Items.AddItem(10)
	h = var_Items.AddItem(20)
	// var_Items.SortableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SortableItem(h) = False]
	endwith
	// var_Items.FormatCell(h,0) = "value + ` <fgcolor=808080> this item is excluded from aggregate computations</fgcolor>`"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "value + ` <fgcolor=808080> this item is excluded from aggregate computations</fgcolor>`"]
	endwith
	var_Items.AddItem(30)

793
Is is possible to change the default group header to display sum rather than count

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.HasLines = 0
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.AllowGroupBy = true
oGrid.Columns.Item(6).AllowGroupBy = false
var_Column = oGrid.Columns.Item(1)
	var_Column.GroupByFormatCell = "'<caption> (sum: <b>' + value + '</b>, of Freight)'"
	var_Column.GroupByTotalField = "sum(current,rec,%6)"
	var_Column.SortOrder = true
oGrid.EndUpdate()

792
How do I get the caption of the group during the AddGroupItem event

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddGroupItem = class::nativeObject_AddGroupItem
endwith
*/
// Occurs after a new Group Item has been inserted to Items collection.
function nativeObject_AddGroupItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		? "Caption:" 
		? var_Items.CellCaption(Item,var_Items.GroupItem(Item)) 
		? "Value:" 
		? Str(var_Items.CellValue(Item,var_Items.GroupItem(Item))) 
return

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.HasLines = 0
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.AllowGroupBy = true
var_Column = oGrid.Columns.Item(1)
	var_Column.GroupByFormatCell = "'<b><caption></b> (' + value + ') group'"
	var_Column.SortOrder = true
oGrid.EndUpdate()

791
Is it possible, to add more aggregate functions to grouping header

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddGroupItem = class::nativeObject_AddGroupItem
endwith
*/
// Occurs after a new Group Item has been inserted to Items collection.
function nativeObject_AddGroupItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		// var_Items.FormatCell(Item,var_Items.GroupItem(Item)) = "value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`"
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.FormatCell(Item,GroupItem(Item)) = "value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`"]
		endwith
		// var_Items.CellValue(Item,"Min") = "min(current,all,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValue(Item,"Min") = "min(current,all,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(Item,"Min") = 4
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValueFormat(Item,"Min") = 4]
		endwith
		// var_Items.CellValue(Item,"Max") = "max(current,all,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValue(Item,"Max") = "max(current,all,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(Item,"Max") = 4
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValueFormat(Item,"Max") = 4]
		endwith
		// var_Items.CellValue(Item,"Sum") = "sum(current,all,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValue(Item,"Sum") = "sum(current,all,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(Item,"Sum") = 4
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.CellValueFormat(Item,"Sum") = 4]
		endwith
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local oGrid,rs,var_Column,var_Column1,var_Column2,var_Columns

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.HasLines = 0
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).SortOrder = true
var_Columns = oGrid.Columns
	// var_Columns.Add("Min").Visible = false
	var_Column = var_Columns.Add("Min")
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Visible = False]
	endwith
	// var_Columns.Add("Max").Visible = false
	var_Column1 = var_Columns.Add("Max")
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.Visible = False]
	endwith
	// var_Columns.Add("Sum").Visible = false
	var_Column2 = var_Columns.Add("Sum")
	with (oGrid)
		TemplateDef = [dim var_Column2]
		TemplateDef = var_Column2
		Template = [var_Column2.Visible = False]
	endwith
oGrid.EndUpdate()

790
Is it possible to display more aggregate functions to a single cell (method 2)

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,oGrid,var_Column,var_Column1,var_Column2,var_Columns,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.SortOnClick = 0
oGrid.LinesAtRoot = 5
oGrid.Indent = 13
oGrid.HeaderVisible = false
oGrid.LinesAtRoot = -1
var_Columns = oGrid.Columns
	var_Columns.Add("Items")
	// var_Columns.Add("Quantity").Editor.EditType = 4
	var_Editor = var_Columns.Add("Quantity").Editor
	with (oGrid)
		TemplateDef = [dim var_Editor]
		TemplateDef = var_Editor
		Template = [var_Editor.EditType = 4]
	endwith
	// var_Columns.Add("Sum").Visible = false
	var_Column = var_Columns.Add("Sum")
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Visible = False]
	endwith
	// var_Columns.Add("Min").Visible = false
	var_Column1 = var_Columns.Add("Min")
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.Visible = False]
	endwith
	// var_Columns.Add("Max").Visible = false
	var_Column2 = var_Columns.Add("Max")
	with (oGrid)
		TemplateDef = [dim var_Column2]
		TemplateDef = var_Column2
		Template = [var_Column2.Visible = False]
	endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("Items")
	// var_Items.CellMerge(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellMerge(h,0) = 1]
	endwith
	// var_Items.FormatCell(h,0) = "`Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>`"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>`"]
	endwith
	// var_Items.CellValueFormat(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 1]
	endwith
	// var_Items.CellValue(h,2) = "sum(current,dir,dbl(%1))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "sum(current,dir,dbl(%1))"]
	endwith
	// var_Items.CellValueFormat(h,2) = 4
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,2) = 4]
	endwith
	// var_Items.CellValue(h,3) = "min(current,dir,dbl(%1))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,3) = "min(current,dir,dbl(%1))"]
	endwith
	// var_Items.CellValueFormat(h,3) = 4
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,3) = 4]
	endwith
	// var_Items.CellValue(h,4) = "max(current,dir,dbl(%1))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,4) = "max(current,dir,dbl(%1))"]
	endwith
	// var_Items.CellValueFormat(h,4) = 4
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,4) = 4]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 1"),1) = 10
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 1"),1) = 10]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 2"),1) = 20
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 2"),1) = 20]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 3"),1) = 30
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 3"),1) = 30]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

789
How can I use the current in the aggregate/total field

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,oGrid,var_Columns,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.SortOnClick = 0
oGrid.LinesAtRoot = 5
oGrid.Indent = 13
oGrid.HeaderVisible = false
oGrid.LinesAtRoot = -1
var_Columns = oGrid.Columns
	var_Columns.Add("Items")
	// var_Columns.Add("Quantity").Editor.EditType = 4
	var_Editor = var_Columns.Add("Quantity").Editor
	with (oGrid)
		TemplateDef = [dim var_Editor]
		TemplateDef = var_Editor
		Template = [var_Editor.EditType = 4]
	endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("Items")
	// var_Items.CellValue(h,1) = "sum(current,dir,dbl(%1))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "sum(current,dir,dbl(%1))"]
	endwith
	// var_Items.CellValueFormat(h,1) = 4
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,1) = 4]
	endwith
	// var_Items.FormatCell(h,1) = "`Total: `+ value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,1) = "`Total: `+ value"]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 1"),1) = 10
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 1"),1) = 10]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 2"),1) = 20
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 2"),1) = 20]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Item 3"),1) = 30
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Item 3"),1) = 30]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

788
How can I prevent a specified item to be not included in the aggregate/total function

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,h1,oGrid,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.DrawGridLines = -1
oGrid.SortOnClick = 0
oGrid.LinesAtRoot = 5
oGrid.HasLines = 2
oGrid.HeaderVisible = false
// oGrid.Columns.Add("Numbers").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("Numbers").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 4]
endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("Numbers")
	// var_Items.CellEditorVisible(h,0) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellEditorVisible(h,0) = False]
	endwith
	// var_Items.ItemBold(var_Items.InsertItem(h,null,10)) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemBold(InsertItem(h,,10)) = True]
	endwith
	// var_Items.ItemBold(var_Items.InsertItem(h,null,20)) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemBold(InsertItem(h,,20)) = True]
	endwith
	// var_Items.ItemBold(var_Items.InsertItem(h,null,30)) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemBold(InsertItem(h,,30)) = True]
	endwith
	h1 = var_Items.InsertItem(h,null,"not included")
	// var_Items.CellEditorVisible(h1,0) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.CellEditorVisible(h1,0) = False]
	endwith
	// var_Items.CellValueFormat(h1,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.CellValueFormat(h1,0) = 1]
	endwith
	// var_Items.CellHAlignment(h1,0) = 2
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.CellHAlignment(h1,0) = 2]
	endwith
	// var_Items.SortableItem(h1) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.SortableItem(h1) = False]
	endwith
	h1 = var_Items.InsertItem(0,null,"sum(all,rec,dbl(%0))")
	// var_Items.ItemBold(h1) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.ItemBold(h1) = True]
	endwith
	// var_Items.SelectableItem(h1) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.SelectableItem(h1) = False]
	endwith
	// var_Items.CellValueFormat(h1,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.CellValueFormat(h1,0) = 5]
	endwith
	// var_Items.FormatCell(h1,0) = "`Sum: ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.FormatCell(h1,0) = "`Sum: ` + value"]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

787
Is is possible to specify which items/cells/fields to be included by the aggregate/total function I am using

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddItem = class::nativeObject_AddItem
endwith
*/
// Occurs after a new Item has been inserted to Items collection.
function nativeObject_AddItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	// oGrid.Items.SortableItem(Item) = false
	var_Items = oGrid.Items
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.SortableItem(Item) = False]
	endwith
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	CellStateChanged = class::nativeObject_CellStateChanged
endwith
*/
// Fired after cell's state has been changed.
function nativeObject_CellStateChanged(Item,ColIndex)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		// var_Items.SortableItem(Item) = false
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.SortableItem(Item) = CellState(Item,ColIndex)]
		endwith
	oGrid.Refresh()
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,oGrid,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
oGrid.FullRowSelect = 0
oGrid.DrawGridLines = -1
oGrid.SortOnClick = 0
// oGrid.Columns.Add("Check Numbers").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("Check Numbers").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 4]
endwith
var_Items = oGrid.Items
	// var_Items.CellHasCheckBox(var_Items.AddItem(10),0) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellHasCheckBox(AddItem(10),0) = True]
	endwith
	h = var_Items.AddItem(20)
	// var_Items.CellHasCheckBox(h,0) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellHasCheckBox(h,0) = True]
	endwith
	// var_Items.CellState(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellState(h,0) = 1]
	endwith
	// var_Items.CellHasCheckBox(var_Items.AddItem(30),0) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellHasCheckBox(AddItem(30),0) = True]
	endwith
	h = var_Items.AddItem("sum(all,rec,dbl(%0))")
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.FormatCell(h,0) = "`sum on checked items : ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`sum on checked items : ` + value"]
	endwith
oGrid.EndUpdate()

786
Can I display multiple total/aggregate functions such as sum, min or max, into a single cell (method 1)

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,oGrid,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
oGrid.FullRowSelect = 0
oGrid.DrawGridLines = -1
// oGrid.Columns.Add("Numbers").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("Numbers").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 4]
endwith
var_Items = oGrid.Items
	var_Items.AddItem(10)
	var_Items.AddItem(20)
	var_Items.AddItem(30)
	h = var_Items.AddItem("sum(all,rec,dbl(%0))")
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.FormatCell(h,0) = "`sum: ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`sum: ` + value"]
	endwith
	h = var_Items.SplitCell(h,0)
	// var_Items.CellValue(0,h) = "min(all,rec,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(0,h) = "min(all,rec,dbl(%0))"]
	endwith
	// var_Items.CellValueFormat(0,h) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(0,h) = 5]
	endwith
	// var_Items.FormatCell(0,h) = "`min: ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(0,h) = "`min: ` + value"]
	endwith
	h = var_Items.SplitCell(0,h)
	// var_Items.CellValue(0,h) = "max(all,rec,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(0,h) = "max(all,rec,dbl(%0))"]
	endwith
	// var_Items.CellValueFormat(0,h) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(0,h) = 5]
	endwith
	// var_Items.FormatCell(0,h) = "`max: ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(0,h) = "`max: ` + value"]
	endwith
oGrid.EndUpdate()

785
How can I use the index of the item in total/aggregate functions, rather than root or parent

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,oGrid,var_Column,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.TreeColumnIndex = -1
oGrid.FullRowSelect = 0
// oGrid.Columns.Add("Numbers").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("Numbers").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 4]
endwith
var_Column = oGrid.Columns.Add("Idx")
	var_Column.FormatColumn = "0 index ``"
	var_Column.Width = 24
	var_Column.AllowSizing = false
	var_Column.Enabled = false
var_Items = oGrid.Items
	h = var_Items.AddItem("3 Numbers")
	// var_Items.ItemHeight(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 0]
	endwith
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	var_Items.InsertItem(h,null,10)
	var_Items.InsertItem(h,null,20)
	var_Items.InsertItem(h,null,30)
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("sum(0,dir,dbl(%0))")
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	// var_Items.FormatCell(h,0) = "`sum of first three numbers is ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`sum of first three numbers is ` + value"]
	endwith
	h = var_Items.AddItem("3 Numbers")
	// var_Items.ItemHeight(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 0]
	endwith
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	var_Items.InsertItem(h,null,15)
	var_Items.InsertItem(h,null,35)
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("count(5,dir,dbl(%0))")
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith
	// var_Items.FormatCell(h,0) = "`count of next two numbers is ` + value"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "`count of next two numbers is ` + value"]
	endwith
oGrid.EndUpdate()

784
How can I have a better view of what current, parent, all, dir or rec means in total/aggregate fields

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local h,h1,oGrid,var_Editor,var_Items,var_Items1,var_Items2,var_Items3

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = 1
// oGrid.Columns.Add("Numbers").Editor.EditType = 4
var_Editor = oGrid.Columns.Add("Numbers").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 4]
endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("")
	// var_Items.CellValue(h,0) = "sum(current,dir,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,0) = "sum(current,dir,dbl(%0))"]
	endwith
	// var_Items.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 5]
	endwith
	// var_Items.FormatCell(h,0) = "'sum of <fgcolor=FF0000><b>Direct</b> children: '+value + `</fgcolor> using <a>sum(current,dir,dbl(%0))`"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.FormatCell(h,0) = "'sum of <fgcolor=FF0000><b>Direct</b> children: '+value + `</fgcolor> using <a>sum(current,dir,dbl(%0))`"]
	endwith
	// var_Items.ItemForeColor(var_Items.InsertItem(h,null,10)) = 0xff
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemForeColor(InsertItem(h,,10)) = 255]
	endwith
	// var_Items.ItemForeColor(var_Items.InsertItem(h,null,20)) = 0xff
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemForeColor(InsertItem(h,,20)) = 255]
	endwith
	// var_Items.ItemForeColor(var_Items.InsertItem(h,null,30)) = 0xff
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemForeColor(InsertItem(h,,30)) = 255]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
var_Items1 = oGrid.Items
	h = var_Items1.AddItem("")
	// var_Items1.CellValue(h,0) = "sum(current,rec,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items1,h]
		TemplateDef = var_Items1
		TemplateDef = h
		Template = [var_Items1.CellValue(h,0) = "sum(current,rec,dbl(%0))"]
	endwith
	// var_Items1.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items1,h]
		TemplateDef = var_Items1
		TemplateDef = h
		Template = [var_Items1.CellValueFormat(h,0) = 5]
	endwith
	// var_Items1.FormatCell(h,0) = "'sum of <fgcolor=00FF00><b>Leaf</b> chidlren: '+value +`</fgcolor> using <a>sum(current,rec,dbl(%0))`"
	with (oGrid)
		TemplateDef = [dim var_Items1,h]
		TemplateDef = var_Items1
		TemplateDef = h
		Template = [var_Items1.FormatCell(h,0) = "'sum of <fgcolor=00FF00><b>Leaf</b> chidlren: '+value +`</fgcolor> using <a>sum(current,rec,dbl(%0))`"]
	endwith
	// var_Items1.ItemForeColor(var_Items1.InsertItem(var_Items1.InsertItem(var_Items1.InsertItem(var_Items1.InsertItem(h,null,100),null,10),null,10),null,1)) = 0xff00
	with (oGrid)
		TemplateDef = [dim var_Items1]
		TemplateDef = var_Items1
		Template = [var_Items1.ItemForeColor(InsertItem(InsertItem(InsertItem(InsertItem(h,,100),,10),,10),,1)) = 65280]
	endwith
	// var_Items1.ItemForeColor(var_Items1.InsertItem(var_Items1.InsertItem(h,null,200),null,2)) = 0xff00
	with (oGrid)
		TemplateDef = [dim var_Items1]
		TemplateDef = var_Items1
		Template = [var_Items1.ItemForeColor(InsertItem(InsertItem(h,,200),,2)) = 65280]
	endwith
	// var_Items1.ItemForeColor(var_Items1.InsertItem(var_Items1.InsertItem(h,null,300),null,3)) = 0xff00
	with (oGrid)
		TemplateDef = [dim var_Items1]
		TemplateDef = var_Items1
		Template = [var_Items1.ItemForeColor(InsertItem(InsertItem(h,,300),,3)) = 65280]
	endwith
	h1 = var_Items1.InsertItem(h,null,"sum(parent,direct,%0)")
	// var_Items1.CellValueFormat(h1,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items1,h1]
		TemplateDef = var_Items1
		TemplateDef = h1
		Template = [var_Items1.CellValueFormat(h1,0) = 5]
	endwith
	// var_Items1.FormatCell(h1,0) = "'sum of <b>Parent Direct</b> children: '+value +`</fgcolor> using <a>sum(parent,direct,%0)`"
	with (oGrid)
		TemplateDef = [dim var_Items1,h1]
		TemplateDef = var_Items1
		TemplateDef = h1
		Template = [var_Items1.FormatCell(h1,0) = "'sum of <b>Parent Direct</b> children: '+value +`</fgcolor> using <a>sum(parent,direct,%0)`"]
	endwith
	h1 = var_Items1.InsertItem(h,null,"sum(parent,rec,%0)")
	// var_Items1.CellValueFormat(h1,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items1,h1]
		TemplateDef = var_Items1
		TemplateDef = h1
		Template = [var_Items1.CellValueFormat(h1,0) = 5]
	endwith
	// var_Items1.FormatCell(h1,0) = "'sum of <fgcolor=00FF00><b>Parent Leaf</b> children: '+value +`</fgcolor> using <a>sum(parent,rec,%0)`"
	with (oGrid)
		TemplateDef = [dim var_Items1,h1]
		TemplateDef = var_Items1
		TemplateDef = h1
		Template = [var_Items1.FormatCell(h1,0) = "'sum of <fgcolor=00FF00><b>Parent Leaf</b> children: '+value +`</fgcolor> using <a>sum(parent,rec,%0)`"]
	endwith
	// var_Items1.ExpandItem(0) = true
	with (oGrid)
		TemplateDef = [dim var_Items1]
		TemplateDef = var_Items1
		Template = [var_Items1.ExpandItem(0) = True]
	endwith
var_Items2 = oGrid.Items
	h = var_Items2.AddItem("")
	// var_Items2.CellValue(h,0) = "sum(all,rec,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items2,h]
		TemplateDef = var_Items2
		TemplateDef = h
		Template = [var_Items2.CellValue(h,0) = "sum(all,rec,dbl(%0))"]
	endwith
	// var_Items2.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items2,h]
		TemplateDef = var_Items2
		TemplateDef = h
		Template = [var_Items2.CellValueFormat(h,0) = 5]
	endwith
	// var_Items2.FormatCell(h,0) = "'sum of <fgcolor=FF00FF><b>All (leaf children)</b>: '+value  +`</fgcolor> using <a>sum(all,rec,dbl(%0))`"
	with (oGrid)
		TemplateDef = [dim var_Items2,h]
		TemplateDef = var_Items2
		TemplateDef = h
		Template = [var_Items2.FormatCell(h,0) = "'sum of <fgcolor=FF00FF><b>All (leaf children)</b>: '+value  +`</fgcolor> using <a>sum(all,rec,dbl(%0))`"]
	endwith
var_Items3 = oGrid.Items
	h = var_Items3.AddItem("")
	// var_Items3.CellValue(h,0) = "sum(all,all,dbl(%0))"
	with (oGrid)
		TemplateDef = [dim var_Items3,h]
		TemplateDef = var_Items3
		TemplateDef = h
		Template = [var_Items3.CellValue(h,0) = "sum(all,all,dbl(%0))"]
	endwith
	// var_Items3.CellValueFormat(h,0) = 5 /*exTotalField | exHTML*/
	with (oGrid)
		TemplateDef = [dim var_Items3,h]
		TemplateDef = var_Items3
		TemplateDef = h
		Template = [var_Items3.CellValueFormat(h,0) = 5]
	endwith
	// var_Items3.FormatCell(h,0) = "'sum of <fgcolor=FF00FF><b>All (children)</b>: '+value  +`</fgcolor> using <a>sum(all,all,dbl(%0))`"
	with (oGrid)
		TemplateDef = [dim var_Items3,h]
		TemplateDef = var_Items3
		TemplateDef = h
		Template = [var_Items3.FormatCell(h,0) = "'sum of <fgcolor=FF00FF><b>All (children)</b>: '+value  +`</fgcolor> using <a>sum(all,all,dbl(%0))`"]
	endwith
oGrid.EndUpdate()

783
Do you have any Fit-To-Page options when printing the control

local oGrid,rs,var_Print

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.ColumnAutoResize = false
oGrid.ContinueColumnScroll = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
var_Print = new OleAutoClient("Exontrol.Print")
	var_Print.Options = "FitToPage = On"
	var_Print.PrintExt = oGrid
	var_Print.Preview()

782
How do I hide the selection

local oGrid,var_Column,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
oGrid.SelForeColor = oGrid.ForeColor
oGrid.SelBackColor = oGrid.BackColor
oGrid.ShowFocusRect = false
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Format")
		var_Column.FormatColumn = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
		// var_Column.Def(17) = 1
		with (oGrid)
			TemplateDef = [dim var_Column]
			TemplateDef = var_Column
			Template = [var_Column.Def(17) = 1]
		endwith
var_Items = oGrid.Items
	var_Items.AddItem(10)
	var_Items.AddItem(-8)
oGrid.EndUpdate()

781
How do I access the cells, or how do I get the values in the columns

local h,oGrid,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Columns = oGrid.Columns
	var_Columns.Add("C1")
	var_Columns.Add("C2")
	var_Columns.Add("C3")
var_Items = oGrid.Items
	h = var_Items.AddItem("Item 1")
	// var_Items.CellValue(h,1) = "SubItem 1.1"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "SubItem 1.1"]
	endwith
	// var_Items.CellValue(h,2) = "SubItem 1.2"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "SubItem 1.2"]
	endwith
	? Str(var_Items.CellValue(h,2)) 

780
I am using the FormatColumn/FormatCell to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	SelectionChanged = class::nativeObject_SelectionChanged
endwith
*/
// Fired after a new item has been selected.
function nativeObject_SelectionChanged()
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		var_Items.ClearItemBackColor(0)
		// var_Items.ItemBackColor(var_Items.SelectedItem(0)) = 0xffff80
		with (oGrid)
			TemplateDef = [dim var_Items]
			TemplateDef = var_Items
			Template = [var_Items.ItemBackColor(SelectedItem(0)) = 16777088]
		endwith
return

local oGrid,var_Column,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
oGrid.SelForeColor = oGrid.ForeColor
oGrid.SelBackColor = oGrid.BackColor
oGrid.ShowFocusRect = false
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Format")
		var_Column.FormatColumn = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
		// var_Column.Def(17) = 1
		with (oGrid)
			TemplateDef = [dim var_Column]
			TemplateDef = var_Column
			Template = [var_Column.Def(17) = 1]
		endwith
var_Items = oGrid.Items
	var_Items.AddItem(10)
	var_Items.AddItem(-8)
oGrid.EndUpdate()

779
How can I get the number of columns being shown in the control's SortBar part

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.Columns.Item(1).SortOrder = true
oGrid.Columns.Item(2).SortOrder = true
? Str(oGrid.Columns.SortBarColumnsCount) 
oGrid.EndUpdate()

778
How can I add a header and footer for grouping items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddGroupItem = class::nativeObject_AddGroupItem
endwith
*/
// Occurs after a new Group Item has been inserted to Items collection.
function nativeObject_AddGroupItem(Item)
	local h,var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		h = var_Items.InsertItem(Item,null,"")
		// var_Items.SelectableItem(h) = false
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.SelectableItem(h) = False]
		endwith
		// var_Items.CellValue(h,6) = "min(parent,rec,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValue(h,6) = "min(parent,rec,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(h,6) = 5 /*exTotalField | exHTML*/
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValueFormat(h,6) = 5]
		endwith
		// var_Items.FormatCell(h,6) = "`<font ;7><b>Min</b>: ` + value"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.FormatCell(h,6) = "`<font ;7><b>Min</b>: ` + value"]
		endwith
		// var_Items.ItemPosition(h) = 0
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.ItemPosition(h) = 0]
		endwith
		h = var_Items.InsertItem(Item,null,"")
		// var_Items.SelectableItem(h) = false
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.SelectableItem(h) = False]
		endwith
		// var_Items.CellValue(h,6) = "max(parent,rec,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValue(h,6) = "max(parent,rec,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(h,6) = 5 /*exTotalField | exHTML*/
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValueFormat(h,6) = 5]
		endwith
		// var_Items.FormatCell(h,6) = "`<font ;7><b>Max</b>: ` + value"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.FormatCell(h,6) = "`<font ;7><b>Max</b>: ` + value"]
		endwith
return

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.HasLines = 0
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).SortOrder = true
oGrid.EndUpdate()

777
How can I add a footer for grouping items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddGroupItem = class::nativeObject_AddGroupItem
endwith
*/
// Occurs after a new Group Item has been inserted to Items collection.
function nativeObject_AddGroupItem(Item)
	local h,var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		h = var_Items.InsertItem(Item,null,"")
		// var_Items.SelectableItem(h) = false
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.SelectableItem(h) = False]
		endwith
		// var_Items.CellValue(h,6) = "sum(parent,rec,dbl(%6))"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValue(h,6) = "sum(parent,rec,dbl(%6))"]
		endwith
		// var_Items.CellValueFormat(h,6) = 5 /*exTotalField | exHTML*/
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.CellValueFormat(h,6) = 5]
		endwith
		// var_Items.FormatCell(h,6) = "`<font ;7><b>Sum</b>: ` + value"
		with (oGrid)
			TemplateDef = [dim var_Items,h]
			TemplateDef = var_Items
			TemplateDef = h
			Template = [var_Items.FormatCell(h,6) = "`<font ;7><b>Sum</b>: ` + value"]
		endwith
return

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.HasLines = 0
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.SortBarVisible = true
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).SortOrder = true
oGrid.EndUpdate()

776
How can I handle the event for the inside controls

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ItemOleEvent = class::nativeObject_ItemOleEvent
endwith
*/
// Fired when an ActiveX control hosted by an item has fired an event.
function nativeObject_ItemOleEvent(Item,Ev)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? Str(Ev) 
return

local h,oGrid,var_Grid,var_Grid1,var_Items,var_Items1,var_Items2,var_Items3,var_Items4

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = -1
oGrid.ScrollBySingleLine = true
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.InsertControlItem(h,"Exontrol.Grid")
	// var_Items.ItemHeight(h) = 256
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 256]
	endwith
	var_Grid = var_Items.ItemObject(h)
		var_Grid.LinesAtRoot = -1
		var_Grid.ScrollBySingleLine = true
		var_Grid.Columns.Add("C1")
		var_Grid.Columns.Add("C2")
		var_Items1 = var_Grid.Items
			// var_Items1.CellValue(var_Items1.AddItem(1),1) = 2
			with (oGrid)
				TemplateDef = [dim var_Items1]
				TemplateDef = var_Items1
				Template = [var_Items1.CellValue(AddItem(1),1) = 2]
			endwith
		h = var_Grid.Items.AddItem(3)
		// var_Grid.Items.CellValue(h,1) = 4
		var_Items2 = var_Grid.Items
		with (oGrid)
			TemplateDef = [dim var_Items2]
			TemplateDef = var_Items2
			Template = [var_Items2.CellValue(h,1) = 4]
		endwith
		var_Items3 = var_Grid.Items
			// var_Items3.ExpandItem(h) = true
			with (oGrid)
				TemplateDef = [dim var_Items3,h]
				TemplateDef = var_Items3
				TemplateDef = h
				Template = [var_Items3.ExpandItem(h) = True]
			endwith
			h = var_Items3.InsertControlItem(h,"Exontrol.Grid")
			var_Grid1 = var_Items3.ItemObject(h)
				var_Grid1.LinesAtRoot = -1
				var_Grid1.Columns.Add("Inside-Inside")
				var_Items4 = var_Grid1.Items
					h = var_Items4.AddItem("item")
					var_Items4.InsertItem(h,null,"child 1")
					var_Items4.InsertItem(h,null,"child 2")
					var_Items4.InsertItem(h,null,"child 3")

775
How can I specify the position of the item manually (Method 2)

local oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	var_Items.AddItem("Child 3")
	var_Items.AddItem("Child 2")
	var_Items.AddItem("Child 1")
	// var_Items.ItemPosition(var_Items.ItemByIndex(0)) = 2
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemPosition(ItemByIndex(0)) = 2]
	endwith
	// var_Items.ItemPosition(var_Items.ItemByIndex(1)) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemPosition(ItemByIndex(1)) = 1]
	endwith
	// var_Items.ItemPosition(var_Items.ItemByIndex(2)) = 0
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemPosition(ItemByIndex(2)) = 0]
	endwith

774
How can I specify the position of the item manually (Method 1)

local h1,h2,h3,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h3 = var_Items.AddItem("Child 3")
	h2 = var_Items.AddItem("Child 2")
	h1 = var_Items.AddItem("Child 1")
	// var_Items.ItemPosition(h3) = 2
	with (oGrid)
		TemplateDef = [dim var_Items,h3]
		TemplateDef = var_Items
		TemplateDef = h3
		Template = [var_Items.ItemPosition(h3) = 2]
	endwith
	// var_Items.ItemPosition(h2) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h2]
		TemplateDef = var_Items
		TemplateDef = h2
		Template = [var_Items.ItemPosition(h2) = 1]
	endwith
	// var_Items.ItemPosition(h1) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.ItemPosition(h1) = 0]
	endwith

773
Is it possible to open second inside grid in inside-grid

local h,oGrid,var_Grid,var_Grid1,var_Items,var_Items1,var_Items2,var_Items3

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = -1
oGrid.ScrollBySingleLine = true
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.InsertControlItem(h,"Exontrol.Grid")
	// var_Items.ItemHeight(h) = 256
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 256]
	endwith
	var_Grid = var_Items.ItemObject(h)
		var_Grid.LinesAtRoot = -1
		var_Grid.ScrollBySingleLine = true
		var_Grid.Columns.Add("C1")
		var_Grid.Columns.Add("C2")
		var_Items1 = var_Grid.Items
			// var_Items1.CellValue(var_Items1.AddItem(1),1) = 2
			with (oGrid)
				TemplateDef = [dim var_Items1]
				TemplateDef = var_Items1
				Template = [var_Items1.CellValue(AddItem(1),1) = 2]
			endwith
		h = var_Grid.Items.AddItem(3)
		// var_Grid.Items.CellValue(h,1) = 4
		var_Items2 = var_Grid.Items
		with (oGrid)
			TemplateDef = [dim var_Items2]
			TemplateDef = var_Items2
			Template = [var_Items2.CellValue(h,1) = 4]
		endwith
		var_Items3 = var_Grid.Items
			// var_Items3.ExpandItem(h) = true
			with (oGrid)
				TemplateDef = [dim var_Items3,h]
				TemplateDef = var_Items3
				TemplateDef = h
				Template = [var_Items3.ExpandItem(h) = True]
			endwith
			h = var_Items3.InsertControlItem(h,"Exontrol.Grid")
			var_Grid1 = var_Items3.ItemObject(h)
				var_Grid1.Columns.Add("Inside-Inside")
				var_Grid1.Items.AddItem("item")

772
Computed field concatating strings values to calculated values. Is there something we can change this

local oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Columns = oGrid.Columns
	var_Columns.Add("A")
	var_Columns.Add("B")
	// var_Columns.Add("Sum").ComputedField = "dbl(%0) + dbl(%1)"
	var_Column = var_Columns.Add("Sum")
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.ComputedField = "dbl(%0) + dbl(%1)"]
	endwith
	// var_Columns.Add("Concaternation").ComputedField = "str(%0) + str(%1)"
	var_Column1 = var_Columns.Add("Concaternation")
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.ComputedField = "str(%0) + str(%1)"]
	endwith
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem(1),1) = 2
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(1),1) = 2]
	endwith
	// var_Items.CellValue(var_Items.AddItem(21),1) = 22
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(21),1) = 22]
	endwith

771
Is it possible the Items.FormatCell or Column.FormatColumn to use values from other columns

local oGrid,var_Column,var_Column1,var_Columns,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Columns = oGrid.Columns
	// var_Columns.Add("A").Editor.EditType = 4
	var_Editor = var_Columns.Add("A").Editor
	with (oGrid)
		TemplateDef = [dim var_Editor]
		TemplateDef = var_Editor
		Template = [var_Editor.EditType = 4]
	endwith
	// var_Columns.Add("B").FormatColumn = "currency(%0)"
	var_Column = var_Columns.Add("B")
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.FormatColumn = "currency(%0)"]
	endwith
	// var_Columns.Add("C").FormatColumn = "%1 format ''"
	var_Column1 = var_Columns.Add("C")
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.FormatColumn = "%1 format ''"]
	endwith
var_Items = oGrid.Items
	var_Items.AddItem(1)
	var_Items.AddItem(2)
	var_Items.AddItem(3)

770
Is it possible to do un-grouping the items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Click = class::nativeObject_Click
endwith
*/
// Occurs when the user presses and then releases the left mouse button over the grid control.
function nativeObject_Click()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Ungroup()
return

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarHeight = 24
oGrid.HeaderHeight = 24
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.ReadOnly = -1
var_Column = oGrid.Columns.Item(1)
	var_Column.Alignment = 1
	// var_Column.Def(4) = 15790320
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(4) = 15790320]
	endwith
	var_Column.SortOrder = true
oGrid.EndUpdate()

769
How can I change the visual aspect of the links in the sort bar

local oGrid,rs,var_Column,var_Column1

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarHeight = 24
oGrid.HeaderHeight = 24
oGrid.BackColorSortBar = 0xf0f0f0
oGrid.BackColorSortBarCaption = oGrid.BackColor
oGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAAWL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjEovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI")
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
var_Column = oGrid.Columns.Item(1)
	var_Column.Alignment = 1
	// var_Column.Def(4) = 15790320
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(4) = 15790320]
	endwith
	var_Column.SortOrder = true
var_Column1 = oGrid.Columns.Item(5)
	var_Column1.Alignment = 1
	// var_Column1.Def(4) = 16119285
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.Def(4) = 16119285]
	endwith
	var_Column1.SortOrder = true
oGrid.Template = [Background(28) = 16777216] // oGrid.Background(28) = 0x1000000
oGrid.EndUpdate()

768
Is it possible to display no +/- button for grouped items

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
var_Column = oGrid.Columns.Item(1)
	var_Column.Alignment = 1
	// var_Column.Def(4) = 15790320
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(4) = 15790320]
	endwith
oGrid.EndUpdate()

767
How can I remove the extra information that grouped items display

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = 5
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.Columns.Item(6).AllowGroupBy = false
var_Column = oGrid.Columns.Item(1)
	var_Column.GroupByTotalField = ""
	var_Column.GroupByFormatCell = ""
oGrid.EndUpdate()

766
How can I change the label, caption or the formula of the grouped items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddItem = class::nativeObject_AddItem
endwith
*/
// Occurs after a new Item has been inserted to Items collection.
function nativeObject_AddItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	// oGrid.Items.ItemDividerLineAlignment(Item) = 3
	var_Items = oGrid.Items
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemDividerLineAlignment(Item) = 3]
	endwith
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Refresh()
return

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ScrollBySingleLine = true
oGrid.LinesAtRoot = 5
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.Columns.Item(6).AllowGroupBy = false
var_Column = oGrid.Columns.Item(1)
	var_Column.GroupByTotalField = "sum(current,rec,%6)"
	var_Column.GroupByFormatCell = "'<font ;11>' + <caption> + '</font> <fgcolor=808080>( Freight: ' + currency(value) + ')'"
oGrid.DefaultItemHeight = 28
oGrid.EndUpdate()

765
How can I change the aspect of grouped items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddItem = class::nativeObject_AddItem
endwith
*/
// Occurs after a new Item has been inserted to Items collection.
function nativeObject_AddItem(Item)
	local l,var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Items = oGrid.Items
		// var_Items.ItemDividerLine(Item) = 0
		with (oGrid)
			TemplateDef = [dim var_Items,Item]
			TemplateDef = var_Items
			TemplateDef = Item
			Template = [var_Items.ItemDividerLine(Item) = 0]
		endwith
		l = var_Items.GroupItem(Item)
		// var_Items.CellSingleLine(Item,l) = false
		with (oGrid)
			TemplateDef = [dim var_Items,Item,l]
			TemplateDef = var_Items
			TemplateDef = Item
			TemplateDef = l
			Template = [var_Items.CellSingleLine(Item,l) = False]
		endwith
		// var_Items.CellBold(Item,l) = true
		with (oGrid)
			TemplateDef = [dim var_Items,Item,l]
			TemplateDef = var_Items
			TemplateDef = Item
			TemplateDef = l
			Template = [var_Items.CellBold(Item,l) = True]
		endwith
		// var_Items.CellBackColor(Item,l) = 0x1000000
		with (oGrid)
			TemplateDef = [dim var_Items,Item,l]
			TemplateDef = var_Items
			TemplateDef = Item
			TemplateDef = l
			Template = [var_Items.CellBackColor(Item,l) = 16777216]
		endwith
return

local oGrid,rs,var_Column

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ScrollBySingleLine = true
oGrid.LinesAtRoot = 0
oGrid.TreeColumnIndex = -1
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAEGg4BKoCg6AADACAxRDAMgBQKAAzQFAYcBuGiGAAGMZhWgmFgAQhFcZQSKUOQTDKMIziaQIRDEMw5SSNIxyAK0QBkAqNQCkKKwIgmNYDSBMYABBIMBwiGQaRJnegYRDUMJCQjRVITVLMNoXDKZIyqEAHfpWVJWSLHcIhDBJUjcOYyTiOQrzCK8dB0G6bIrGEZpYRAPwEYDIIjbQhqFYDChCNLwHScEAxC4kLhnKK6Vb9d6HYhiOJYXhmDrfR7IMhyLI8QafFqXZhmOZZXizPY9T7QNB0LQ8eZbJqnahqOpaOx2W5dV7YNh2LTWGzXNq3bhuOzLbrme59X7gOB3RZeE4XRrHchxKq8XxnG6dZ7oOTUXofFOK5WmudQTh2LpfHOO5em+doSh4LwfhOS5mnGIw9D6LxfjOW5unSIQ+D8L4flOa5yD2fg/D+L5fnOe54ByigGAKAJgEgBBrgGYIICYCoCmCSAcGOA5hAgRgSgSYQBGoFoFmGCBmBqBphGESgegeYgIgYIoHkSKIWCaCZigiJgqgqYhog4LoLmGSJGDKBZhEiVg2gMY4ImYCIBGOSJ1n6D5kAeZZ2hCZBHj4RoRl6J4eEqEpeAkNhOHaXYJEYUh0GUSRVkwchlgkZZChaZZGnWOoXmYBpOGKGJamaLhmhmWhJiYahnlmSY2G4ZZZEmRhyGMZxJlWCBhFCFgWHaHpYkmSh+GSJp6AWG4amgRoOGeIZahmEoKGyJgKDWOIXGkB" ;
 +"wGFmJJcHkWoWHQJQqGWVoTmmRx+EuJ5eFkIoiHuJBKhWdIQGqB52D2KpgDiaougMIxqyODJrEgbgvi2YgYjKOoumKSpij4FIrFsBg0iyLBKj6RoOmqSwmimMpkCqGpOiibQJCaII0mmWxWFCJotgoXpahWaRLHaEY3mWag6mKIpuEmFoIjmaBbiYbIgi6RhaH+O5Onmcpyh2VYAAEASAg")
oGrid.DrawGridLines = 1
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
var_Column = oGrid.Columns.Item(1)
	var_Column.GroupByFormatCell = "'EmployeeID: ' + <caption> + '<br><font ;7><fgcolor=808080>Count: ' + value"
oGrid.EndUpdate()

764
How can I remove or change the line it shows for grouped items

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddItem = class::nativeObject_AddItem
endwith
*/
// Occurs after a new Item has been inserted to Items collection.
function nativeObject_AddItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	// oGrid.Items.ItemDividerLine(Item) = 0
	var_Items = oGrid.Items
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ItemDividerLine(Item) = 0]
	endwith
return

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.EndUpdate()

763
Is it possible to determine whether an item is regular or a group by item
/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	MouseMove = class::nativeObject_MouseMove
endwith
*/
// Occurs when the user moves the mouse.
function nativeObject_MouseMove(Button,Shift,X,Y)
	local h
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	h = oGrid.ItemFromPoint(-1,-1,c,hit)
	? Str(oGrid.Items.GroupItem(h)) 
return

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.EndUpdate()

762
How can I collapse all items when the user performs a grouping

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AddGroupItem = class::nativeObject_AddGroupItem
endwith
*/
// Occurs after a new Group Item has been inserted to Items collection.
function nativeObject_AddGroupItem(Item)
	local var_Items
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	// oGrid.Items.ExpandItem(Item) = false
	var_Items = oGrid.Items
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ExpandItem(Item) = False]
	endwith
return

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.EndUpdate()

761
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "<fgcolor=FF0000>Try to drag the EmployeeID column here."
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).AllowGroupBy = false
oGrid.EndUpdate()

760
How can I enable the Group By support, with no sort bar

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SingleSort = false
oGrid.AllowGroupBy = true
oGrid.Columns.Item(1).SortOrder = true
oGrid.EndUpdate()

759
Does your control support Group-By feature

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.SortBarVisible = true
oGrid.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
oGrid.AllowGroupBy = true
oGrid.EndUpdate()

758
How can I restrict a field to number only (Method 3, Float)

local oGrid,var_Editor

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("Numbers").Editor
	var_Editor.EditType = 1
	var_Editor.Numeric = 1
oGrid.Items.AddItem(12)

757
How can I restrict a field to number only (Method 2, Integer only)

local oGrid,var_Editor

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("Numbers").Editor
	var_Editor.EditType = 1
	var_Editor.Numeric = -1
oGrid.Items.AddItem(12)

756
How can I restrict a field to number only (Method 1)

local oGrid,var_Editor

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("Numbers").Editor
	var_Editor.EditType = 8
	var_Editor.Mask = "###.###"
oGrid.Items.AddItem(12)

755
Is it possible to include only leaf items ( items with no childs ) in the drop down list

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 1315 /*exShowFocusItem | exShowCheckBox | exSortItemsAsc | exLeafItems*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

754
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

local h,oGrid,var_Column,var_Column1,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Item")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.Filter = "Child 1"
	var_Column.FilterType = 240
var_Column1 = oGrid.Columns.Add("Date")
	var_Column1.DisplayFilterButton = true
	var_Column1.DisplayFilterPattern = false
	var_Column1.DisplayFilterDate = true
	var_Column1.FilterList = 9474 /*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/
	var_Column1.Filter = Str("12/28/2010")
	var_Column1.FilterType = 4
oGrid.FilterCriteria = "%0 or %1"
oGrid.Template = [Description(23) = "<font ;18><fgcolor=FF0000>or</fgcolor></font>"] // oGrid.Description(23) = "<font ;18><fgcolor=FF0000>or</fgcolor></font>"
oGrid.Template = [Description(11) = "<font ;18><fgcolor=FF0000>and</fgcolor></font>"] // oGrid.Description(11) = "<font ;18><fgcolor=FF0000>and</fgcolor></font>"
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Child 1"),1) = "12/27/2010"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Child 1"),1) = #12/27/2010#]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Child 2"),1) = "12/28/2010"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Child 2"),1) = #12/28/2010#]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Child 1"),1) = "12/29/2010"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Child 1"),1) = #12/29/2010#]
	endwith
	// var_Items.CellValue(var_Items.InsertItem(h,null,"Child 2"),1) = "12/30/2010"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(InsertItem(h,,"Child 2"),1) = #12/30/2010#]
	endwith
oGrid.ApplyFilter()
oGrid.EndUpdate()

753
Is it possible exclude the dates being selected in the drop down filter window

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Date")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.DisplayFilterDate = true
	var_Column.FilterList = 9474 /*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/
var_Items = oGrid.Items
	var_Items.AddItem("12/27/2010")
	var_Items.AddItem("12/28/2010")
	var_Items.AddItem("12/29/2010")
	var_Items.AddItem("12/30/2010")
	var_Items.AddItem("12/31/2010")
oGrid.EndUpdate()

752
How can I display a calendar control inside the drop down filter window

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Date")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.DisplayFilterDate = true
	var_Column.FilterList = 1282 /*exShowFocusItem | exShowCheckBox | exNoItems*/
var_Items = oGrid.Items
	var_Items.AddItem("12/27/2010")
	var_Items.AddItem("12/28/2010")
	var_Items.AddItem("12/29/2010")
	var_Items.AddItem("12/30/2010")
	var_Items.AddItem("12/31/2010")
oGrid.EndUpdate()

751
Is it possible to include the dates as checkb-boxes in the drop down filter window

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Dates")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = true
	var_Column.DisplayFilterDate = true
	var_Column.FilterList = 1280 /*exShowFocusItem | exShowCheckBox*/
	var_Column.Filter = "to 12/27/2010"
	var_Column.FilterType = 4
var_Items = oGrid.Items
	var_Items.AddItem("12/27/2010")
	var_Items.AddItem("12/28/2010")
	var_Items.AddItem("12/29/2010")
	var_Items.AddItem("12/30/2010")
	var_Items.AddItem("12/31/2010")
oGrid.ApplyFilter()
oGrid.EndUpdate()

750
How can I filter items for dates before a specified date

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Dates")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = true
	var_Column.DisplayFilterDate = true
	var_Column.FilterList = 1026 /*exShowFocusItem | exNoItems*/
	var_Column.Filter = "to 12/27/2010"
	var_Column.FilterType = 4
var_Items = oGrid.Items
	var_Items.AddItem("12/27/2010")
	var_Items.AddItem("12/28/2010")
	var_Items.AddItem("12/29/2010")
	var_Items.AddItem("12/30/2010")
	var_Items.AddItem("12/31/2010")
oGrid.ApplyFilter()
oGrid.EndUpdate()

749
Is it possible to filter dates

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_Column = oGrid.Columns.Add("Dates")
	var_Column.SortType = 2
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = true
	var_Column.DisplayFilterDate = true
	var_Column.FilterList = 1026 /*exShowFocusItem | exNoItems*/
var_Items = oGrid.Items
	var_Items.AddItem("12/27/2010")
	var_Items.AddItem("12/28/2010")
	var_Items.AddItem("12/29/2010")
	var_Items.AddItem("12/30/2010")
	var_Items.AddItem("12/31/2010")
oGrid.EndUpdate()

748
Is it possible to change the Exclude field name to something different, in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Template = [Description(25) = "Leaving out"] // oGrid.Description(25) = "Leaving out"
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 9472 /*exShowExclude | exShowFocusItem | exShowCheckBox*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
oGrid.EndUpdate()

747
How can I display the Exclude field in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 9472 /*exShowExclude | exShowFocusItem | exShowCheckBox*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
oGrid.EndUpdate()

746
Is it possible to show and ensure the focused item from the control, in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 1280 /*exShowFocusItem | exShowCheckBox*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	// var_Items.SelectItem(var_Items.InsertItem(h,null,"Child 2")) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.SelectItem(InsertItem(h,,"Child 2")) = True]
	endwith
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

745
Is it possible to show only blanks items with no listed items from the control

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 16386 /*exShowBlanks | exNoItems*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

744
How can I include the blanks items in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 16640 /*exShowBlanks | exShowCheckBox*/
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

743
How can I select multiple items in the drop down filter window, using check-boxes

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 256
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

742
Is it possible to allow a single item being selected in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.FilterList = 128
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

741
How can I display no (All) item in the drop down filter window

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Template = [Description(0) = ""] // oGrid.Description(0) = ""
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = true
	var_Column.FilterList = 2
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

740
Is it possible to display no items in the drop down filter window, so only the pattern is visible

local h,oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Items")
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = true
	var_Column.FilterList = 2
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
oGrid.EndUpdate()

739
How can I show the child items with no identation

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 5
oGrid.Indent = 12
oGrid.HasLines = 2
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")

738
Is there other ways of showing the hierarchy lines (exGroupLinesAtRoot)

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 1
oGrid.Indent = 12
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith

737
Is there other ways of showing the hierarchy lines (exGroupLinesOutside)

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 5
oGrid.Indent = 12
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")

736
Is there other ways of showing the hierarchy lines (exGroupLinesInsideLeaf)

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 4
oGrid.Indent = 12
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith

735
Is there other ways of showing the hierarchy lines (exGroupLinesInside)

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 3
oGrid.Indent = 12
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith

734
Is there other ways of showing the hierarchy lines (exGroupLines)

local h,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = 2
oGrid.Indent = 12
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(var_Items.InsertItem(h,null,"Child 2"),null,"SubChild 2")
	var_Items.InsertItem(h,null,"Child 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith

733
Is it possible to display a column with buttons when using exCRD format

local h,oGrid,var_Column,var_Column1,var_Column2,var_Column3,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.DrawGridLines = -2
oGrid.DefaultItemHeight = 36
oGrid.FullRowSelect = 0
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Column1")
		var_Column.Visible = false
		var_Column.Editor.EditType = 1
	var_Column1 = var_Columns.Add("Column2")
		var_Column1.Visible = false
		var_Column1.Editor.EditType = 1
	var_Column2 = var_Columns.Add("Column3")
		var_Column2.Alignment = 1
		var_Column2.HeaderAlignment = 1
		var_Column2.Visible = false
		// var_Column2.Def(2) = true
		with (oGrid)
			TemplateDef = [dim var_Column2]
			TemplateDef = var_Column2
			Template = [var_Column2.Def(2) = True]
		endwith
		// var_Column2.Def(3) = true
		with (oGrid)
			TemplateDef = [dim var_Column2]
			TemplateDef = var_Column2
			Template = [var_Column2.Def(3) = True]
		endwith
	var_Column3 = var_Columns.Add("FormatLevel")
		var_Column3.FormatLevel = "(0/1),2:64"
		// var_Column3.Def(32) = var_Column3.FormatLevel
		with (oGrid)
			TemplateDef = [dim var_Column3]
			TemplateDef = var_Column3
			Template = [var_Column3.Def(32) = FormatLevel]
		endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("Cell 1.1")
	// var_Items.CellValue(h,1) = "Cell 1.2"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "Cell 1.2"]
	endwith
	// var_Items.CellValue(h,2) = "Cell 1.3"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "Cell 1.3"]
	endwith
	h = var_Items.AddItem("Cell 2.1")
	// var_Items.CellValue(h,1) = "Cell 2.2"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "Cell 2.2"]
	endwith
	// var_Items.CellValue(h,2) = "Cell 2.3"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "Cell 2.3"]
	endwith
oGrid.EndUpdate()

732
How can I change the check-boxes appearance

local h,oGrid,var_Appearance,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.LinesAtRoot = -1
var_Column = oGrid.Columns.Add("Default")
	// var_Column.Def(0) = true
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(0) = True]
	endwith
	var_Column.PartialCheck = true
var_Items = oGrid.Items
	h = var_Items.AddItem("Root")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
var_Appearance = oGrid.VisualAppearance
	var_Appearance.Add(1,"XP:Button 3 12")
	var_Appearance.Add(2,"XP:Button 3 11")
	var_Appearance.Add(3,"XP:Button 3 10")
oGrid.Template = [CheckImage(0) = 16777216] // oGrid.CheckImage(0) = 16777216
oGrid.Template = [CheckImage(1) = 33554432] // oGrid.CheckImage(1) = 33554432
oGrid.Template = [CheckImage(2) = 50331648] // oGrid.CheckImage(2) = 50331648

731
Is it possible to disable the cell's editor context menu
local oGrid,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("Edit").Editor
	var_Editor.EditType = 1
	// var_Editor.Option(202) = false
	with (oGrid)
		TemplateDef = [dim var_Editor]
		TemplateDef = var_Editor
		Template = [var_Editor.Option(202) = False]
	endwith
var_Items = oGrid.Items
	var_Items.AddItem(10)
	var_Items.AddItem(20)

730
How can I find a value in a drop down editor

local oGrid,var_Editor,var_Editor1,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("DropDownList").Editor
	var_Editor.EditType = 3
	var_Editor.AddItem(1,"DDList 1")
	var_Editor.AddItem(2,"DDList 2")
	var_Editor.AddItem(3,"DDList 3")
var_Editor1 = oGrid.Columns.Add("DropDown").Editor
	var_Editor1.EditType = 2
	var_Editor1.AddItem(1,"DDType 1")
	var_Editor1.AddItem(2,"DDType 2")
	var_Editor1.AddItem(3,"DDType 3")
var_Items = oGrid.Items
	// var_Items.CellValue(.AddItem(1),1) = oGrid.Columns.Item(1).Editor.FindItem(1)
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(1),1) = Me.Columns.Item(1).Editor.FindItem(1)]
	endwith
	// var_Items.CellValue(.AddItem(2),1) = oGrid.Columns.Item(1).Editor.FindItem(2)
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(2),1) = Me.Columns.Item(1).Editor.FindItem(2)]
	endwith

729
What is the difference between DropDownType and DropDownListType

local oGrid,var_Editor,var_Editor1,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Editor = oGrid.Columns.Add("DropDownList").Editor
	var_Editor.EditType = 3
	var_Editor.AddItem(1,"First item")
	var_Editor.AddItem(2,"Second item")
	var_Editor.AddItem(3,"Third item")
var_Editor1 = oGrid.Columns.Add("DropDown").Editor
	var_Editor1.EditType = 2
	var_Editor1.AddItem(1,"First item")
	var_Editor1.AddItem(2,"Second item")
	var_Editor1.AddItem(3,"Third item")
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem(1),1) = "Any"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(1),1) = "Any"]
	endwith
	// var_Items.CellValue(var_Items.AddItem(2),1) = "Any"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(2),1) = "Any"]
	endwith

728
How can I add or change the padding (spaces) for captions in the control's header

local oGrid,var_Column,var_Column1

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
// oGrid.Columns.Add("Padding-Left").Def(52) = 18
var_Column = oGrid.Columns.Add("Padding-Left")
with (oGrid)
	TemplateDef = [dim var_Column]
	TemplateDef = var_Column
	Template = [var_Column.Def(52) = 18]
endwith
var_Column1 = oGrid.Columns.Add("Padding-Right")
	// var_Column1.Def(53) = 18
	with (oGrid)
		TemplateDef = [dim var_Column1]
		TemplateDef = var_Column1
		Template = [var_Column1.Def(53) = 18]
	endwith
	var_Column1.HeaderAlignment = 2
oGrid.EndUpdate()

727
Do you have any plans to add cell spacing and cell padding to the cells

local oGrid,var_Column,var_Column1,var_Column2,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.DrawGridLines = -2
var_Column = oGrid.Columns.Add("Padding-Left")
	// var_Column.Def(0) = true
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(0) = True]
	endwith
	// var_Column.Def(48) = 18
	with (oGrid)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Def(48) = 18]
	endwith
// oGrid.Columns.Add("No-Padding").Def(0) = true
var_Column1 = oGrid.Columns.Add("No-Padding")
with (oGrid)
	TemplateDef = [dim var_Column1]
	TemplateDef = var_Column1
	Template = [var_Column1.Def(0) = True]
endwith
// oGrid.Columns.Add("Empty").Position = 0
var_Column2 = oGrid.Columns.Add("Empty")
with (oGrid)
	TemplateDef = [dim var_Column2]
	TemplateDef = var_Column2
	Template = [var_Column2.Position = 0]
endwith
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem("Item A.1"),1) = "Item A.2"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Item A.1"),1) = "Item A.2"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Item B.1"),1) = "Item B.2"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Item B.1"),1) = "Item B.2"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Item C.1"),1) = "Item C.2"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Item C.1"),1) = "Item C.2"]
	endwith
oGrid.EndUpdate()

726
Is it possible to change the height for all items at once

local h,oGrid,var_Items,var_Items1

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.LinesAtRoot = -1
oGrid.Columns.Add("Items")
var_Items = oGrid.Items
	h = var_Items.AddItem("Root 1")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	h = var_Items.AddItem("Root 2")
	var_Items.InsertItem(h,null,"Child 1")
	var_Items.InsertItem(h,null,"Child 2")
	// var_Items.ExpandItem(0) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ExpandItem(0) = True]
	endwith
oGrid.EndUpdate()
oGrid.DefaultItemHeight = 12
// oGrid.Items.ItemHeight(0) = 12
var_Items1 = oGrid.Items
with (oGrid)
	TemplateDef = [dim var_Items1]
	TemplateDef = var_Items1
	Template = [var_Items1.ItemHeight(0) = 12]
endwith

725
Can I display somehow the filter just on the top of the list, with an editor associated to each column

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	local var_Column
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "Locked:" 
	? Str(oGrid.Items.IsItemLocked(Item)) 
	var_Column = oGrid.Columns.Item(ColIndex)
		var_Column.Filter = Str(NewValue)
		var_Column.FilterType = 3
	oGrid.ApplyFilter()
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	MouseUp = class::nativeObject_MouseUp
endwith
*/
// Occurs when the user releases a mouse button.
function nativeObject_MouseUp(Button,Shift,X,Y)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Edit(oGrid.Items.LockedItem(0,0))
return

local h,oGrid,rs,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.ColumnAutoResize = false
oGrid.ScrollBySingleLine = true
oGrid.ContinueColumnScroll = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
var_Items = oGrid.Items
	// var_Items.LockedItemCount(0) = 2
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(0) = 2]
	endwith
	h = var_Items.LockedItem(0,0)
	// var_Items.CellEditor(h,0).EditType = 1
	var_Editor = var_Items.CellEditor(h,0)
	with (oGrid)
		TemplateDef = [dim var_Editor]
		TemplateDef = var_Editor
		Template = [var_Editor.EditType = 1]
	endwith
	h = var_Items.LockedItem(0,1)
	// var_Items.ItemHeight(h) = 4
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 4]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.SelectableItem(h) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectableItem(h) = False]
	endwith

724
Is it possible to display information about the firing events
/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Event = class::nativeObject_Event
endwith
*/
// Notifies the application once the control fires an event.
function nativeObject_Event(EventID)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? Str(oGrid.EventParam(-2)) 
return

local oGrid

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject

723
How can I change the layout of my columns when using the exCRD

local h,oGrid,var_Column,var_Column1,var_Column2,var_Column3,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.DrawGridLines = -2
oGrid.DefaultItemHeight = 36
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Column1")
		var_Column.Visible = false
		var_Column.Editor.EditType = 1
	var_Column1 = var_Columns.Add("Column2")
		var_Column1.Visible = false
		var_Column1.Editor.EditType = 1
	// var_Columns.Add("Column3").Visible = false
	var_Column2 = var_Columns.Add("Column3")
	with (oGrid)
		TemplateDef = [dim var_Column2]
		TemplateDef = var_Column2
		Template = [var_Column2.Visible = False]
	endwith
	var_Column3 = var_Columns.Add("FormatLevel")
		var_Column3.FormatLevel = "(0/1),2"
		// var_Column3.Def(32) = var_Column3.FormatLevel
		with (oGrid)
			TemplateDef = [dim var_Column3]
			TemplateDef = var_Column3
			Template = [var_Column3.Def(32) = FormatLevel]
		endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("Cell 1.1")
	// var_Items.CellValue(h,1) = "Cell 1.2"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "Cell 1.2"]
	endwith
	// var_Items.CellValue(h,2) = "Cell 1.3"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "Cell 1.3"]
	endwith
	h = var_Items.AddItem("Cell 2.1")
	// var_Items.CellValue(h,1) = "Cell 2.2"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "Cell 2.2"]
	endwith
	// var_Items.CellValue(h,2) = "Cell 2.3"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,2) = "Cell 2.3"]
	endwith
oGrid.EndUpdate()

722
Is it possible to scroll the control's content by clicking and moving the mouse up or down

local oGrid,rs

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
oGrid.ContinueColumnScroll = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.AutoDrag = 16
oGrid.EndUpdate()

721
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
local h,h1,h2,h3,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oGrid.Template = [HTMLPicture("p1") = "c:\exontrol\images\card.png"] // oGrid.HTMLPicture("p1") = "c:\exontrol\images\card.png"
oGrid.Template = [HTMLPicture("p2") = "c:\exontrol\images\sun.png"] // oGrid.HTMLPicture("p2") = "c:\exontrol\images\sun.png"
oGrid.AutoDrag = 11
oGrid.LinesAtRoot = 0
oGrid.HasLines = 2
oGrid.ShowFocusRect = false
oGrid.DefaultItemHeight = 26
oGrid.Columns.Add("Task")
var_Items = oGrid.Items
	h = var_Items.AddItem("<img>p1:32</img>Group 1")
	// var_Items.CellValueFormat(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 1]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	h1 = var_Items.InsertItem(h,null,"Task 1")
	h2 = var_Items.InsertItem(h,null,"Task 2")
	h3 = var_Items.InsertItem(h,null,"Task 3")
	h = var_Items.AddItem("<img>p2:32</img>Group 2")
	// var_Items.CellValueFormat(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 1]
	endwith
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	h1 = var_Items.InsertItem(h,null,"Task")
	// var_Items.ExpandItem(0) = true
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ExpandItem(0) = True]
	endwith
oGrid.EndUpdate()

720
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

local h,oGrid,rs,var_Columns,var_Columns1,var_HTMLPicture,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Template = [HTMLPicture("p1") = "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"] // oGrid.HTMLPicture("p1") = "gCJKBOI4NBQaBQAhQNJJIIhShQAIERFQIA0RAYGLriiIEM5BJpBiIARYlMBNhQPLhJIhBKhoQLlTTLV4la5VYx/fZVOoee7de62drYdI4YIWcIteIQEbEEAzCghEwIRIZKSmJD8EIZMzARgZKYmEAmDISYgEAISIJKdg4JzSOK7bp9b73HiqezeNYxLD7Th7N67dpmQSQIZJUpzVRqT46PY9Xy1yL2Qz/c6HXbzHoAKYgWrzC7tZDtLgBOpzOajQApWDXZwOdABb6eHa+fCHMTCB7AMo7S6AIxMcADcAIfHEe6AQ7/G7zfhfHqeAb/AJ8B6TfITMAVGLrd4Db78aY/fydH77axfPjjS5fP7tcLMY6EOYed4dbyHcwHCoHfAICCApOHEDgcA+OAnACAJgBya5jAoLh5hCc4OGcQ47GeQIBneNoGHaTI5kAKxOHuHAzjGXp5mwAZgnyNB/nCPh9g+ABinGYA1kmGYAAqThjgGQRwHiThPC8Vhfnma5/ngXZvn8ew7keQBfmOUAYCIBj7ngbY/nqS4/nkDYzieXwLn+dp+j+EpiE8CAAEKNwZFOTZ3FCOpgHyRQHkCcAJmUDRzgEHwhAYHoRAGHxADuCAxAeDxOAcHA3jmRw4guaoamcbZMAwM4EDWTkNgGqQqHYPJEDmKhrDwB4QmcKAsgkcQGGQHBLiYfBGjcCESFATIID0KgDjgBJ3hGVQVk4JZqHcbpklef58g+fwFScd09j+AwnECWY0FeEIBFmdIyAsZ" ;
 +"4fHyEIRB6Ch4F8UZLDWdQ5CAAheEOTAxGmWgDhqYIaEGO4AgiAYNm8RhwACKo4HaCgviCHptB4Uo9ACAQlFsG5rEINAFh4WpxAQRAqE4QAlGARJGjmLw2EYfAdk8DIomYGJKjISY5AiChKGYIg/EMUg7iEGZ7B8GABn4Do0jYWRVASMgiGoLwTHMdJKEkaI9CaZwej6H85mcCAGlwBQfFoH4bFyJgEAOdRBBCEoSC4ZpUAOOpwBURBbieeYzEeKwIAOJQAFSVABp6U5Kg+PhvkGex8HAOJnE2ZgPF4WY1kQHALiic54lcYYQiAQ55g6VQbHMdZfjyF4PCYTTLkaAQGCadRIE0VImlQLQgm0EhalsNYMkgHRMDKHpiGoEYmlARpZDQYQMiECYzHwQhEHCKZOmOVZ+mMJYgFqIRgBYVoLCmXgHlAaoeCUYJKgcU4IneHoQiIQR5kIDBEBiGhMDoHgL4CQ/BiBeEIOILgRBaBwL8fweAZiZGaNEWoYBwjuBSAAOoiASBECMJwG44Qih6EEDMcIRBmCyBcPQRgwwBCRECJgPQ+h0gRBCDQZYNwXjwB8FAVYvQsC8BSKYWy+BvABC8DwSobAghSAEOoFgjGKAVEeJCA4oBxDZB2PwWQCWqgQAkCEAgfA4D2HSB0PwEwsBdCICkBoKgIjVAEFcD4gw8D0CsAEXwnQtgFBoAUPIahmiICANQRwWgjCDGKAsbwEBaCjEozkWQDhECcCiMsIAjBIiQBMAYA4DRUCMBsCk" &
 +"YA+xaCFESG8P4LwBCqGqIQOgiRtASESIYOA+xmAnCoIUYo1QJhiE4BIAT+REghVkG0SwcgnCbAEJoI44QoCnFQFQCgjx0BdCSG8XIzQegFc0KgbIJgWgkDUBkOIrgEicCOKAM4HBwDnA+JkIQXg9jYBmJ1SI3w4hxDsIYNQzxnDeEUPkZwIQfAaFcE0LQmwsAtEsEYAo8BXCjCsEAAYLggDQEIOQYIsBWgeFSBkEo4A+iPBQIQGAIQ8AIBCBEPowBDjQCkKQAAHhoiMBGFEWoggFDqEkBkIA7RcjKDwNcAYthjh9AeBAIoKhCDUDaD0YIewUAlFiFoRqrBlhVGOHoAoXw9ADH0H4cA2RZieFmAsZAQwnitHgPoS4RhfDyEqHMaQcAhiaHoAQa4gwDCzCEB4GISgIgACeM0DIHwQi0AZAkOIGgoCfFQncQ4ZhcgqHYB8HwagsCPGaOoZwAhQATHGAwKgcAAiVGMjsSIihRBcFeK4CILQ7hjGAMsCoUBSgiEANMYg1RiiCAoKAd45wuCeDMK4VwYAbA3AQDgIwchDCUD2EIdAqA8gkCuAsSgXQZCcFeFcM4jAxhPHYOYZgdxHChAwCwJQhQ4hMB4H8SwKAKgeA4MMfwQQRV9qGPcGwUQDjOBOGoDwUA9BWBuJ8CEIxlh7G+MgKgxRciEEkHERo9hUBWWIJURgqhRA4CoEsJYjxXhQAAKKoY8R6DjGYLMaYjgMAgBKKgAQwQ7jcBYGAP4Fx9TnE8MMOgAhDiHFg" &
 +"FgYAcAFA7F2DATYdxGCjCCGcWIgBzinAWI4R4MxZh5FEMgEIVwrgzCUPESgIhCCYCwP4CgPg/DiASDEQIwhnBuBIMYIQ6g9X2D2GYOYmxTD3AcB8CQ3hbh4FaGoHI3gkj7HIE4awEAiAtAaCkXwxQSBAH6CsEAgBhi5BSMscoihug5HxmgLgZQFhYAqKYGIMRPgvCwCwFgqh9gwFOOQAoKg4D8pm2UOIeQOAAHwOgEYWBXA7BcC4I4tBHDgBlkoQ95x7hJFaN4OgwRbgAHWPEYIcw6gFFqEYUwUxnhsB8DITYGQciaHeL0bIKBZADAoG0CgFxWioDuGYNolQLAEAWkEagowVCs2SFAeIWBzD7A5NwC4kAuB4DgAQWYqRuj7GSAoQwDCtgZH0OQCYGBjgOAiDgbAzxmBmDgHzjQQBvh3k+CwS4PR1jRHEMcNgAhLgXGMCsPgGAsguGeBkQ4cxTDzCGKYWYfQpDwCoAoRQZwzguA4B4BrVhsA7HhycDIpQjhrDCHkeoiR4gLDQIQYIXAtMfD6EAdQaBrMBEiLEJIFAoAdCiBEKgow8jNHOCqwgrhMi+A2PEMIThWiZFcIMaoCBIhEGSJkTgOwhCAFGAcBIRxvCmBqIcLIvwrC4FyIEdYBRqDaEiEcRAYRBi/GcFIc4OBJDLCmNYVYGwzdGBMNMDIqgYC2DyO8dwQQLgHCWLsJwEB4hIHGNkVwWRvreAiI0LQKwRDZGwKAVgUQGD7AcEEUgIAnBQFEI0f4XAEO6" &
 +"GsHADoaBSDkEKE0DQwwoCuBMMwQYBx4DwAIEoDwjQOBYhUgNhGAGBwgWB9gCADhXBZhkBfgtAAgFApBNhKABAcuohnAPhphug6B2B3BehghyAghRArAWBgAjBghDhPApAZF1DsB4hjAlBUBFBEhThiheArAFhVBtB1BIhuBiAHgUALBMgXhXg/hGAqAggbAuB+hZgKgQHdBSgTAxA2A1AfBDhigRBAgyBzApgFhAAjh9goAlhvBSBsArACsBgshABBhNgVgphqBvBAg8higxA0hPhoghhkgNgcBaBtBRhhBdBHB2B2AeBQgFgRhxh4ADAYgsgtBWBahchdBgB6h8gjgTBMABgIgghqh0AXAcAJhtBEAQAVBigZBMh5hUAKBNguAKAph+BVgQBYBglUBUgKgbAOhZgEgOAOhghygagOAOAgAlARhRA5hOByAWh6g6p/gugChjAAhrABhWBDBHA6hDByBtgaBeg8hpATBVvSg2vRgDhSAHJxvQA+AhB4A5hJB3h0gzgjhUAEBagFAnhPg/g2BUhIqJhchGA3hUgJBmh8BIAmAAgnB4BnBxhegjgMgtAyhsgphVheAdADA+O2hAhzB4AQBxA+AzAsABhpBYgBATBuhOheB1BshTBNBZg5gsBWAWAnBWALBYBUAOwAh0gTARhoB4segWBrg4A/Awhgh5h6Bch4hFhRghgFhSAjgjhwAshYBcAfAhh1AgAkAeg3geh5A8G2BSh6gHAAAVBnAghGBQBdA3A+gEAggM" &
 +"gfhqgth4BQlMBXgGBBA3BJgxhZg0g7BVhEBhB/A3AxBahlBWP0g7BMh0h9BiBoh/AkBvhMh4AqnwABhjAWh0hEBUgCgjh2gUA1gcAdBAhOgOhMAmBggZh5BjA1gOgtBQh3h2hWBCg2gLgpAVsNBWhnAUBZhAhfBvgRhCAwASh6hbAUgyBihJBEBwA6gmh4BggBBSBBAygABghEgIgWAaBQB3BKgFAYBRAQAFBggig0BGgFAIg5hYhKBwB5BlAYBegPAwAuA6h2B3hhhnA+ASBiBGA5g4BYADgYhGBUBBhVhNhcgispBFA4A/hnhyAFhnAEBKH9hjh6gNBnAnAwgfB1gMhjhAh0hmBsAwBWhQAsBygshDAChYhNhZguB6AuESBeB+gXB+ByABg3gugVgeAvg9g7hwBBgPh3z/AmATBYA/gsBshthngrBlBZhiBCgugaBeAFABBnA2h4hWAtB3BcBnBWghAxA1g/BCACBFgahKAFA+hrgIimgXAIhhBkBghAhihCwVArhshvA4h+AwASAChAAHAqhVgVoTB5B1gIoOAxBBBphzgegbgFgcAeB2BggMgWA1BDBWB4BxgHgLAmMrBrB1gHAUgdgeA9BdgJEbhDgfhNAQhah5B7AXhWhIhdByAjh3gCgpB2Acg+hvB5hzBLhLhSBnB0BdhfBSBfqRgNhVAFAQhMB1hrhNAEhQhY1SB0ANAxgxA7gDg7A7gwBWAMg+BRB1hmBxApAjhlhtg6ADBAhdA8g8hZBpArBG" &
 +"ANBFhTA2g3hQhLBIhshWBxhggQgmA9g8B/BeBxzzh/AXh8JCgDAqAdglAMg8B+AJhMBnBwB0BgggAPAjhrBFgThqA4gigPADgiAVASudB6gJBUhAgtAwB3h4BFFxhwBhh7hQhyAhBnAlh6ASgOh/B9gFBIBrA8g6hbh2hWgrBmgpA1BjB9gkAmAWgAALBMA7g4A6AABnA6hLACglBjBChCAVBth9Atg1BTB3gGhZhhg0BrhvBNhJBSBvAzBTBjgnhwBTgPhhBig8hjsJBIgRBKhPBJAjgXAXoYgPAHAHgABrhRhoB8U0B5BzBGBqhxBFAVAYBGAVg5BUhqAtAMhrgFhzAdgbhSAqA8B7AKAlAvB4gJANB4AxALAoAiVhpxBkhqBZARBiAUgZBXBbAvKRARAzhFgGg9hdhMhshmAMARAMAIh5BnBeAgA6AyAdAMhUi4BeBPhsBMqrgzhJh3BdAchRARhXBYhhAYg7guAuhGAEBzAchLgrhYBeAMosB0AUB8hNBygmhnquAbgbgOgHAVhaA/B6AvBvgwBthRhdBwB9h/g3A4BEhohdBgh3h/gwA3BHge0eg4B6BwBLBtg+BHABAOBagzApBNApBOh6gBghB5gBAI4QgLhTAEBMhBgugRgkhnAihOBlgtglhLBNBEg0hFBzBIvEhbhvBYBkB3gugzg+BehNBTg8A3hrhRBjAGhvA/BqBwhuBkBigygjgkAOgugbg5A+gGhpgkhnhkghh1gvAdAzhWhdBLBWAoAM" &
 +"h4BYhbg3AqAZBHhBBjhiB/ACBqgPBjhADNAfh+hoBdAtgpAfgmhCh3gghgANBIg2BegABQAaAXg0AHBBBLAxAYM0AiBXg6gyhSgWANhLgzglhRAoBMB6ARgpAWhWg3BtBrR9hAAqg8gLAPtxAZhlgZAjhDgRgHgn1PgEBhgxBiB9hHAHgfgAAI09A1BYhZqNAwAYAHBWklgGBsgIBYhizSB4BMA4g8BjBcLHXkhCjqAIg1AsgwPRhWhsBshcBJBqgEhMhhhBgUg8gsA2gCgHAQhBYYAzBaBAgnBkgAARgRZShpgLANA3BxgChmgVhyBnAmBBADgaBJmrh0iUB+hwB+gzB+h2gyA9hRhigdAIA+BHhkAkgtnMgAhehShtAHZzBRgUidgqNYrtR1hThggtAEAfAohiBCBOA6AjA4gyhZgHA4ATg3BsB6g2hytDhPQwhjD5gLAVp+BDBsATgppBBkgMhzgdoOP+YahHB0BBW7gHBHAdBDB6hkB4gEhqAdB4ByBRhPBbuqBLBrACAPB/g2BwBmhbhPBQgWg2h/B2BhgJhvA+B6AGBzhwB+AGOkAJhSB6B0All2BUgaB0BtAtBEgkBjAbgbAUBJBbh7rOgyh9h2A7B2A+gzhtACAmBaZ1Bqh6BWgWgmgrAMvbBdgLALgjAOA0gdsEBfhlgLAhhrA1hcBcBYAzhaggAUgoAjBxgQhpBVBoBJBsgXBzBqI4gLgTgGB1gJgHBHgNApg+gkgLA8BQgjhqAaBqBpBQA1gu" &
 +"h5gWg6BNB/hEhvArhkBlhdBWgbBDA9gxgbAChuAjAcA2hSh6ATBWgkglhPhNgKAEhOgug1hxB0AEA3BXBmhRQRAZBrgBApBPg2g8hCgaByhUE8BUhKhwBHvMhKhwhrAPA9h4g8A0gYhaBMhqAzhvA/h4hwhlgDA/hrBQh7g1gDBcAug4AogAhSAhgbh6hiAjAQg1BXB+h9B1gjBKBdACBageBxh0hpgJgOATgUATBwBJhPhPhwAeh6ApzQgnA8B2glgegVBhgrAgg9AlgChbgZhHAXhvBsAuBeA2ArhiA7BoBFgHgvgZBsBIgvBVAMA1gxgAhtA2hfg3geBkAlB1BYrbhbgKhzBbBUhEpeMhgOhnA+hGg7hvBQhWgwBGhSB3A1heB5h3AahUhvhahtBvgGhQAOgRBhhbAtg6gDgBA2gEhjBtTmA2gMgshvOYB8h4B8BVgLAig+g1AGhChtheBdgIh0B3AZgYB5B5gUgCg8BBhghFglBdAHhLg8ccBaghgShvB0hwAhBWgxglhlgNgkBSArA612tcg6gZhrBLUohIgZBQZVAWFNh1h/BVhyBNhNgGAKA2BTgkAAhtgQhZBsgdB5BPhvh8hNhfh9h9A3g+h5gNhfhdAdB9B+h0Ahg2BmgiBYhGgGhYB2hUh8gIAthHhXA2hEB4BbB0E5haBwAOBvAjgxgvBtgTBFhjg8hHhqA5A/gmA2glhxg2gJhDAWhKhsg5BLgChrhth9n6giAVgwhhhnhOg0hlBuh8h3O1" &
 +"g6h5gdg5gPhzgOhZAvBKg/h9EuB+AXhwAEg4TXBIhUgHAtgTA/AOg8AJh8ARhwBrhsAaABA/hYhHBFAEh/gXhgA9pRk8BjA8g7hAgxg2A3hoAIhbAsg1BFAUhxBFhfAohVAAhFAAhZh+AphwAYhbAzg0BsXwBcBugUhbBhh2g7Acgt5fhxAPhBAwg/AEguW/hgAkBBhgBzA0Bdg3faBwBFg3h+hmhYh4hBfSgxg5h1A/gBheADASgcAKg/gJAjCRgkgignAiBXAhAwBBCAg=="
oGrid.Template = [HTMLPicture("p2") = "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"] // oGrid.HTMLPicture("p2") = "gCJKBOI4NBQaBQAhQNJJIIhShQAFUREQIA0RFKQJY2iIJOBILJzhQOYkjYgBSorBwbhQKJ5pIZDKBQNBvOhvOc1OAgJMxEBwORvMxpNhlhR4bSdKZnKhTdIWHr3bz0IRLRCAShLN5SCoIEBSISLQAUSImFQhBIQJSIEKhbIVKLBCJFIoEDbIUCIAaORyARlwFgMRQKbAHcghUSOQajRCKZT7cJ7UZray8e7mZr+WrXHznVjzTqzZ4HYAIBiWJAzKI1QAMVJCDwRcCDY7EYzhcguICBBQkOAACAIWZkEJzfojAIAfB+Hg8FYiYAHXwAAJ4aYLBAAYBNTbAGAcQ7/B7qISZLgBQCEALAOiRHBLBFjABAPSOISm+ZG9CdTAmKYAFAAgADAZYxjEcYACgFsBhOP5zGmABAE6fBMj25ItkoEIKgCUBIgAEAJjKRAiAANAdgAVhnisRQigALAYAACgzCWYgcgAbEFhgJIrjMJAAFgW7tGcCAFlkADTAAGAokQQoUgAAg9wGZARhGPAAEITMYiMeQrh4eIVlcCBzomAA8EyWQeFyEgciKQItgQFo4gOK4rhcDwUGcJILhWCgbDCAQwk0IAXGEPJMgyGRAhoB5wHmZiFQ6CrZEGeZ+jwZwHFcZxnBsRxbAcL4WnUX4DH+EQxQOfxymeVY4CAhRwjoPxon8FgXlmDRAB2AxADafxRBKdwCDQLwFlAOp7kWMxZAeIBawAdJtCueY4OW5oilCSBcmybJynIchsCUYghC2M" ;
 +"JlCuPp/DOYQvmAK5+jYfLmH4e56nAXxxBIQIZC6QIjgIfBwGEZh6CYUoOGeSQEkIMRuHMR4jn4W4Fn+fgOmmERiCSMRciwFQKHGKIJDiRwiE0Rh5hkUoRESIRJBSYoSmkf4yHEb4WH2AYfG+GsfjUHwAj2SIWlQLoxgGewlhOCAsDoYBxHuhR5F2N5gmoFAEAGQA0EGcJnjuf53h+fojlAEsIjMJJJDihQvCIEgXCoZRZh+Y7sgAIhQECFRYCCDZ6GCDAWGAAwOGCApuGCBZ+DAGxCCEEhiGEIQICEBQyEADg5DAFJWEEIQUEMZpYA6FQwBeaggA6GhgCiNBDEmOAHUIKpcAcHo4AefQwgQTxghQXhAgSAggmQBAJjCEJtEQAIxEULARkcBALkyQp8BCYIkAICRFhIEBkkQCgohEJZIhqJAYikRQqBAKokA6eQejkAQckOLgjF0SIdmQAAZEEPwQwvAjgxEoIEWQUQejUAYLUIYuRUA3A0IQIwogFjQDIHQGImhHgWFAJsaAchaAaB6IwGwoRzjQFWGgB42hHg+CGMcGAwB0AYAODMYgbAYAuGMMMIQsQcAsASJMMYyxYgiFYAwVYxgNCwCsKwAYuxEj1DGM8WId3tiBCKMABINgCB3CECAMIHgghICwEwLAThsBIFQCADgJAaARG0AkG4CQBiECiMIE4IhJioCWLQEwugIj5GIBgMQMgYiHCwEgFgIxrASEeBMF4EA9iICGMQG4JAJCJCGDIE4uRIACCSLE" &
 +"UgVBpASGkEYaQbgpAjHSCwVImwaBIA0CMSYyRtBkDWLIA4ORKAsBACsZAhRyCdHIMMcgMxyAbMOPILYChOhiCAHEUg+ApjiBQFIZQaglAZHKBAcoNBygGDKJgGQQQqijE0FIboqBQhUAiDUR4WghCtFCLYKQrwoiHFQBMGgdRNA5GaIMCwSQlilFaKISo0wNBoAuGge4aRXjoDpIAbolQPBOEuNAK40hljpCOOgS46ABj0DuAwBohgKm0EQGcFAGRNw0AwGcDIdwMCvEwEwUwGRpiLAyMcKgMAbgxHWJgc4mQHiZDeFVjwtgVB8AqJEZQChKhKEqCYSoGwVAvCoKkVQphVDeFUAsKo8wqjLCoI8VIXgph9FcEYKoMwpjjFSAkaglhVhVFUJ0KA6wpgbKWKkHYqBDiqDOKgN4VAfikD8FkfoiQDBZGGEwYYTwhikCiKAWIXxxi8GMCABYYwMizDwCwEIawGirEMHUQINRiAmFiM0bIfA7AqF2JgfoHRdiLB6KoVIoQchDBmEoGYVxZhSHmJQMwPwDjjEwHEfAnA6BOASOcFApxLjzD8IobwFB3gpHECkDYpgaBMFyDEMoXA1iqEsJcSwWBVhIFWFEVYRx1i9BsK4dopxOimF6EUXYWR9iBAcEEY4SgThcBOEcM4jxnAFE6OcKY2QpjdFOAoU4Fgmg9B0PUVwLhVBrFKBsUIuwiB3F+G4U47hMCeF8F4QAngmBvFON4PIvRzj6A4H0F4/QqD9DaPoU49QjgMCw" &
 +"AYWYDASAGG2AwZwGAeDFBqHEN4PAOgvGONseIUQhhdGGEAIYpQwiVDCJccIhBIi5GiDwUY1QjCNCMA8RgaRjBcHGCQcYbRjZ4FGCYAwJgQgmCWE0dQTR3TpCaLkUwKRTA7CZowY4zRmDNFEM0awmQaibB6DEa4Mhzib06NcTY3xbhgC0HgLQLBbCoFsLgMoSRZDkC0KYLI7hbC8DcIULQOQsilCwFULQXRZhGFaJ0VoJRrC7FaLsU4ERTi5CcJMJwqxPDWDOMMWA8RbDJFsKkW4GRYDlGxkoVwtg2i2D6GEM4YgLhnFuMUVwwx3CTF6JMPoug+iNH6D0A4DRDjZAcKsDoWgOh+DmLQOQFAdBWB0N4TQzhODuB+H0Yo9BLDpBeGcLAzwIDPGwDMcYtgJjLBSMQNJShNjTwVusXIc1KCIEWIkJYghlguEuD4FwmwNjGG6MgXo5AlB0HqHELo4Q9DSHqJ0TYsxNjCHaKgbYrx3A2HcGkdwhxuCfGYDQT4KRPBZBmHMaAwxkBDHAFEco0QfgLE+JUGAaxvisD9ZQJ4gQzi1HOCMF4YwXiRCuK0a6QBSh3FUPcMI7wLg+HsD4OQnxxg+HGDwG43gZDeCyF8ZgNxgC3GQLcZYTxhhvE8F8Qo3whh/BGzQf4eh/jRAAKcQAJQAhnAGIkQIQU3ACH2PgPQfAQi/EcD8HQ2wyj2FkNkdoQRGCgFyEECoQRHiCFaIIcowRWghDQMgdgkPqj3HOJgZwkRnBpAcIUKAfh0DW" &
 +"GgAcMI5gwiLGGH4BgJxCiHEKFcQwPxHBwEQFgDQ0QYhLgag7hohuAhg5hvgiB9AiBLAiBvBNgzgYgngchXgWglAagVAfBVAXA1AeBtAbhdAaBdAfhjAXAzAshmBqgsBOgsAkg2AlgOAcgXAVBXAbA3A2BfBvh+B2h5hDhxBOhxAFhxg9gLhMAXhkAug4A8hQhnBhB6BCsLhUgXAJAWAdBLAgAmBEAnAcBKB4AggIAVBUALBGASh5AJg7gShHAFA8hhAOhhAzgRAXhogbBohEBsAhguAVKLh5AkAVAmg9BJB2BIheAag8gSBigZhSgWByhchCAThUhIBeAmAGgmBuhNgdBPALBNA7AQA2gZMNBegYhBhJBIhIA4ghBVAQgmhJhbAzh1AzhzAzA7BlhWAyhChZB/Big3BFhbgXgPBKgDhkg1hZhIBWACgsgWgFBbD7h0AqAtAUBrgVADhZAzgykeBfhmhEhlAcq7BPAVhmh2hmBZhlBthIAbhOB3hPh/h2gJBhAJBwhJBbBShDAlgrgWgOgsBzBehWA1Ack0A4g8htgFBxgKgCgVhDArADBWAeBcBFKmA2hqgnhVh2grhLhXA/BegTA9Amg1hAgvBghlBBBghagAg1h1qxAFByhCg+h1huBrh2gugngsAXgshvhagwh9BDBOgNgfAKhEhFBXAKBtgLhLgKg/hsAUBuA8BygNhDg3hlBfhMhuBKBaBUhVhiBcgyBngzBpAzB0hzBvAWhPAtgHBLBVBLhzBLgHA3" &
 +"AGhshtBaAGhvgrBaB2h6h7AihtgXhLhmgUBthdhBhbIGhRhfyFBeAyhThkhnBmgdgfgqJRh6AqB9AqOpBpBuyahrh8A3Boh3ANg9heB7AaB2BqhtgtjLB+gfBkhfBtgqgAgqgmhqgzBqgyh9gkh9hZh7gfhXBEhVB0h8BLB9g2guhWgnA2g4h2hjgBhpABh+gDgRgHBbBrhchqBqgOhpAegqApBHhrAVh1gjgHBjgPhfB/BOh3g7gWgGgbAGgqhGhOBjBxARg4AiA8hyB0h7gEhvh7gPAGgdBtA7BGA9hWBwgDhpgPg7AOgzsqg1AhBNB5BNAjBNgphNB9gtgxAthdAnhmAfBohrB1BvA9B+AjhtgPgHhOAaAeAsg8glB5gqBkg0htB0hBBphJgzh5BnhGBOhKhOg+g/AXB8huAwBthRBbA9hzgxhnBvg1AHg3h3hdAIA6BwhpAih/hFhzgdheAdhnAuB5BcA6B5BZBthygJgrhcArhNBXgdAvg2h1A6B1AeB/BJhpgnhjhdhOBdhNBXBcr0Bch3A9Behag9gzB7h0gNhPAbhnBuh6Beg8h4gLB/hrBqhPAcgehuheh5g9A3h7hil6hvgLBug/A5ATh+hnBlhdhsg7gTh3BWheAnheAvh6AgPjhsghhuhDhqgfgth/BuBsB3huA/g1BgA7hQB5wBgjh7gDBChBhnh/BIh6hHgHghgChHhMhHhlhDKTh1hPAcAfAcgchxAfg5B+h0h+BTghhnysATBPALlfh/" &
 +"BlhXALgLAXg/B8Bqh1hrhnBohMBohQhLh5BLhJhfg2g+BSh+h1BgB1gMhXhthjBhBjAPBfBkg8AZgYgvB6ArB9h2hgg7huA7gOh3hRhvgHgnhyA+AQA/gUB/g0B8hYh6gphoBTh9hJgMhJhJh/gCABhMB5h+AxgZgWhtiIgCAzgggmggiFBYhHA+B9gohJiIgQAxgkApAmiFA9GzkIhBiFB8h/iFBAB0iFA6kYAAB1AwCFAdBMCFALg3hJAvhigjCFAFh9AkgiAggqCkBWBMAshHguhjg4hjh/15Bsh3AZB7hnAGBDghg1AiBMgtCQBZASgtycBigkBIALh9gSg3gghfAgAfAkhfAkAIByASggBADqBBAWAgB5AIACBEAxAlhbAygWhqM8hDBRAcAZhOB6g3Azh0hWh5AYKaBpAItWg4gBhCg9hABBhth+h1h/quMOgxAzB+BygvjjhfBlAwAIBWA6AUA6gFhUAfBFBzALAKg6AEBGAvAIgzB5AVhnAyAngChRhuBag1hnhUh029AQh6hKxyhoh9g8BzgOh4A1grgZguB/hnANh8Bbg/g/ANgigjAIAihHBTBKhlhMgEh1BwAmhUBqAAASAPBWh7hxhfh8BtgjhngFBvgwAYBEBKBGAAATi5ABA2gWhshEhSAlBMg6gfBChOh7g3puANoXhJgYB2ArgMAHHyBggGAxATA+BZh4haggFDhBBEACAIh6hzA9gtA0BQhZJWhxh9gbhMhMhBhkBIBjhSBthzBgg7" &
 +"BogvgLhbAch2g1BIgFAtBvhYBaA+gMBhAwBVAxhwAQAkBNASBEBnh7AGBABMggAiB/g3goAlAIAIBBEKBxAqAzBNBSA6Apg9h2AKBXgFBIhlguBzgUhqBJBlgogmBXAUhCgahPB9A9AgAehlA+rahPh2APh5hkg4gvg+gYBcgbA2hxgjgigRB1gqgpALBWg3BaAQAxASArAZGMgEAiglh5BXgEg9BbAigJAaBWAPhIBmgShKgqgUhqg6AfhFhnB1gZAWA6A2AyBPA9BigQBFgjhehUBegRgbgXhahmhWgaBYgHgihcgJAugJheAFhIB5h6AuA9BLhqhXAZwQgLB7h8hMgpgqhrh9BlA4ANAJg6g4hSgYB8WMhYBDBfBbBRBzh/gIBGACBOglg6h4h0BrhSh1gvgFhCBbBpA/BPBsglAKhfBMgygRBpAVA8BfAMhBgkA2grhNgbBrANhJAtgVhzBVMVhPAdAxgahxgwA5AdAYBqgoA9gpBnB9gCh3hvBPBWg2BGh6BfBbtKBlBAAMh5kBBiB0hYhSg/gdgUAAgcAHgegogUALAvAGgyBb3VhVBehNhxg7A2gehyAcgugmBYgPAYBmg9hujAgxgtAuAig9o/BzhZgwhDAwSBhEg0hLBhAeA3BihvB4AQAChahWgVgwhqhlAUAmTbB9yUBmhGgFgUh9BEg5hehXBqhrg+APBvArACAoBqAehnh+BqgKBSg5gxgTAogMBTg9xxAIABhzBygYAqg6AZAUAzBdhShn" &
 +"h6AoBCh7BSkZAR0+h9hqhFg9B9U+Agg3heg/g6gmhMBeABAgBEBvAwgfBPh+ByA4A/h7iagIgfgmArBvAegcA4B/g0h9heh1hdBhBkhhhRg3A3A9gVhpF0hXhxhJg9S8Bxg1hDg9hvA8OKhbhBBpBxhYAjAihkgWBSBFhogGBiA6AkBfBhhqAKA3ByAHBfANsEq8BThvhchaBcB+hpgVgthx6ZBigf2shHhghhG8AzgZhSBEAoh6BcBuBnBjhFgDh7g/heB5h0hOgPhuBWB2gFBXg+h3hWhhhOh2hPhMh/BzA8BKgfA/AjB8hLALhiglg7gRIpBfhbhQBTB4gWBCB8AlBFBBAghiASBUAaB5hOBBhbgmgKAMBEh9AsglBJhvAkhGBdAcBfB/hJg3hkhugfg/B4hDhXhyBzBhAyniB4BVADBEgHASTegmgIhEgRAUAHh0Augshjhlh1gyhbA7A1h9gnhvhfB4gvhVhFhFhrhTA1g7B3htgTAzADgJh4hmBngJgJA2APA6gyg9BaBohLhvADhxBThA8aBIASgmhSgnAugbA3glAXASgqAwhhgYBaA2hTBthsg5g9A4h4BjAqg5h/gnhXB/h4AahFhVBHgQBzggBTAQhGABBIgeApgKAAAcAgg5AABDhABsA7AAABL7g3hwAjhyA/h3h+hBh2gwg4AXh/glgWh5A2g2huBAAKg8hiBDB3APArhagIgFhGB8gQgMBxAlgghEgABIgQA0gMA7h5huBcAFgkhKhehw" &
 +"BBAGhYh2hCg9BfA/A+g4hxhTsdg0BlhRAHhSA2AAhZALBSAMhIA0g8h+BOg9goABAcBBAqAABUgAB7APAwhogxB2h9AIArhdhnhXhfhZg7h4BIhuAUBbeWgRC9gegmANB6hEhcBpgDBVeQgnhTBqA5goBYgaARASAQhagogJh6hJBFg+BoBWBkB+hmhYgeA+hqhjh9A5BWA3h/BwBChzgugvhWgzAEAsgBgohshZgMgUABARAACNAoAfABgigBCIBCADhKADgkhHgaB70tBqgwPDBPh/Boh2hJhxBWhZdohACytSkQAwp26ISCyh0y3IEzO/jeKhUzzASQUjhs510AkmqTSVF24EeTEwf32+XCvWu+0uamI3ECcgEJE+QUkfgY8hiRUilnezxA2R0JEcUGS4Xk2mc+Fmhy230eeViTSsZAULFCc2+NRiSgiCRkPFCqDw7CuAigRGSREgbkkoWQEGkzQWnheCj+eGgH3qTwo5RmwCYQBsAmoAW4Ai4AzSaW4LFaBSkc3sDhawA6iA4yCIJB8wnUyDCSEOLyOqWuwCwAyK2x0n1iNgyOAQRCaX0snkIEBItTAqwgchSyAMhsIGlIw0afmqgRKA34KUgrgGMAAIkA/CYVVCAUky1enwA9jOwmEAXQADMEA+gmqHlQD3o82S5jS11YhyM3hqujLFwYgjPIURkHEGhTAQLwnH8AiUM8jAAN8CQ0BMLSELcKhrKsTD4DEcy6FgaQ3NImgBCEwA8AM3ANJAfgFFAlwB" &
 +"MoABSAAyRHB4ChaK4IxyIASwgM0wDxFMIDeAUKxAGYQCuOo0goLUYT7IMCxkHoiwhGUjgFDkKQ2FgtTdBcBgTAMSAMCQJQSAo2RZCsXCRFEWzpNQFA+LYSjCAsEgAAsBiEAEYDAHEHxEAoJA3AAMQAMgAAQEsLxlAAHhgA8TgTHAuAPMQOSYCscCsCERSEJQST6KYizNMkdAqHUPBhFkTgANkUhwCkBx9CEaACJACCcBwZT+MQXA4DUcCuMcpwxKQTgzMsfibHQywBKAqDAHIDDIAIxASIghzgDQAxiAUkjlDIsAIEABCnBoCAzIAawQCIWCWCAaQBCMAQ+IUDyqJM2iQM0qihLQ1RKEgtgGKkGClAkczEEcHznDcfSUBkFAlPslDFBomT0CoExBFskgSEoCyfHo8zaCsWA1AAcQJIIORTJAzAZBwSQwLsMwVJcCQfEgyxPK95AgO4wBwCAqiQEIixZJ0HydMo5g9G8ZgfMooA+KsUROLQrTaNE0DGBQXB6OoERKGABCoXIMQ1F0CDkDoLx5MYgQfHYVB9HQcjcHsYzcOYlCMAUtBdqgXSaF4TgnB4lTbGcPjqAAPjPA4BA4IIcCMFkmzhNA9x3KoqjwKUzh7KwTDhJkagFHY7j0NARzfD0NSPJ43yHLgiwyCY0zvBAQytGU2yWDo6CYPUpifB8rDtG4TTmJssiyOAmCBFQDhQP4GCwFoZg5AACAAIcsxoD83xAAI4AIFQtzYL8IzZNsyyfDAxQHE48A9MgN" &
 +"glgghFFKJkKgTAiAyHiJca4owiBgAkCkdYDg6ipE0EIGQiQnCtA6LACI6hUD5GsI0bonQvhtB8LsBQeByBACiIAJgAQ9AEFWJcWAOBBgkf2AYJACgkCEHIrQGLzRnixGuD0X4ew4jrBkDEMYsxBjeFeJkD4shYh1EoD4BobAXglC+OINIUQ/juC2BwQoSgmi+G0DgJQhxShYDoCUT4iAwhxH4JwUgtQDg3A+F4Xw1xdh9FwDUPQYQBjeEqIAZQAQogCGQEEWAjwmgZGANwAIXBBhBDAMcCADQRhNHsHEfYbhrA8EgBcf4ehaisB8O8M4JRkjpBoFMbo8QUC2A6FMGYnxoBoAQPEUgoAnimFOHMF48AYBeAkJECojRJDJDiEYGYzRYDTEwK8bonA6DXDOO8Pw/BFg/H2J4bQ3gMC8HwBoQQrxgBcEAHQAIlgLDEA0CAQA2QBhJECOMLIfBUiYAgE8HxywvgeDsLcfoqw/g3G4NgHgcATjzEeE4I49o+jxCECUC4Exnh1HgAgUA+hrCHEAJAL4CkaCYGAPAJIAg4BdEMBkPY9AniiA0NYNADxli8HQHcPYiw1h/HmNYPYnx+D5FWO4ToKx1hXC+AcRoxwkBqAAE4fI8haDiFmOgcwGhpATDQHERQyR7O8D6PMUAuxKheH+PsWgsh9BPCaL0XAXxWhvCMMkawuA0h7CWNoJQpQVDEBIBASAmx/gtAuL8FAPQejmAECEGIpQXApByBMC4DhSivAuDIFgzAlCWC6G" &
 +"odQ5gBhbAcC8WoxQPj+GGH8P48hgw0HcLwfI/QzivHaAwQ4lxXDBFYDwA4sgxiAAKNgJoEB1j7EwO4PwjBujbDuOMewUQ7B7FsPofY/xfPWDkNAYIthYD6FQFkUggx/BmB+PYBQWwmAOG4MQQ46AkALGgKAf41AFD/A4JIDwVw7DOEGJoXADhrB3D8KAGGAwxDHCgCwAw6xChNDcPIbwIhvj6GyIQKwDw3jcEyLyLAeBZgYHsN4LgsxbDIEQIQeg3g6srCeE4XovQtibAuN8FYxxhijB4B8HwCB8jgFCAkOAdQWC6CoEoGwVAahcH2NkagzQiivCuP4T4gh8xgH+DgGAExAjnGiLYIwGhNDFHCKESgXidBODuF0bgkRTD3BAJceYbBaBqA+B4Y4zQ7inBoKkR46xiggAmGpZ4MY3h6G2FccQngKg2DUCUe4ZAvAJC6LsaAcQ3iXBmG4KoJBoj6GEB0GwnhujBEoLMAIRQJAEFgPgLQ9x9BlFWAUBIQhogxCsOsYQBhYjhFuKsYwmRDiVCaMMZIIhOhsY4HcQYjh3gzHKLcfQQwYj0F8GoRYfhbClHkJgaITB3AEEyI4KoRBxCsHkK4YokRWDKAEKcaYtgPBfB0M0JoAx8DIDaJcQ4vAUDBDSPIRoWwdB8G8HAMQEhqBGf0GIMYNhXC3GaKwW46hHBmA4LYZgTg2AxH8HUMQ8woBnHyIYSg7gkAoGmAkdorBkDsCcCYFINB2jsCIAUHoZBNidBoLIHQyh8jIG" &
 +"MC4GoCwNB1DaKwMfLhyA2B6K0d48BKh7CeHwLwBgCAmB0OEIIKhrieCSJMaATwrj8GeHsRI3BBg2AaGYaIhwnBajQJECY6QkBCFwJwVI2A7ghYSOsOYrQmhDEyFUNogx9DUC8J4ZY6QIhtGeC8XQcRPAgEQH8W43QeACCwFIYQfgehIA8JoZIpBTDrFaH8Cy0ApC5EuB4Tg1BQBsB6DcY42hgCWGKGgcIkhJh1GmIQSozRqhuD0DwSYvQIjiBOHsYYlBVgOAoOMeQ/gjC/C2NAeYEQQ0pCQIkPoPhUC8HGAgY4QQMCjB0O8cwbAFB5GECnoYoh4gOCIL4NY0xOjbD3B4B1BUAmClAyAYDFDLDKDqDrB1BKD/BnAADtCOCxD1DLZnCEAAgZAABJBFBOBECuBCBgCCEBA=="
var_HTMLPicture = oGrid.HTMLPicture("aka1")
oGrid.HeaderHeight = 24
oGrid.DefaultItemHeight = 48
oGrid.DrawGridLines = -2
oGrid.GridLineColor = 0xf0f0f0
oGrid.SelBackMode = 1
oGrid.ColumnAutoResize = false
oGrid.ContinueColumnScroll = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
// oGrid.Columns.Item(0).Def(17) = 1
var_Columns = oGrid.Columns.Item(0)
with (oGrid)
	TemplateDef = [dim var_Columns]
	TemplateDef = var_Columns
	Template = [var_Columns.Def(17) = 1]
endwith
oGrid.Columns.Item(0).FormatColumn = "value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`"
oGrid.Columns.Item(0).Width = 112
// oGrid.Columns.Item(1).Def(0) = 1
var_Columns1 = oGrid.Columns.Item(1)
with (oGrid)
	TemplateDef = [dim var_Columns1]
	TemplateDef = var_Columns1
	Template = [var_Columns1.Def(0) = 1]
endwith
oGrid.Columns.Item(2).LevelKey = "1"
oGrid.Columns.Item(3).LevelKey = "1"
oGrid.Columns.Item(4).LevelKey = "1"
oGrid.AutoDrag = 10
oGrid.SingleSel = false
var_Items = oGrid.Items
	h = var_Items.ItemByIndex(1)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	h = var_Items.ItemByIndex(2)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	h = var_Items.ItemByIndex(3)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	// var_Items.LockedItemCount(2) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(2) = 1]
	endwith
	h = var_Items.LockedItem(2,0)
	// var_Items.CellValue(h,1) = "<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ..."
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,1) = "<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ..."]
	endwith
	// var_Items.CellSingleLine(h,1) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellSingleLine(h,1) = False]
	endwith
	// var_Items.CellValueFormat(h,1) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,1) = 1]
	endwith
	// var_Items.CellHAlignment(h,1) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellHAlignment(h,1) = 1]
	endwith
	// var_Items.ItemDivider(h) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 1]
	endwith
	// var_Items.ItemDividerLineAlignment(h) = 2
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDividerLineAlignment(h) = 2]
	endwith
oGrid.EndUpdate()

719
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

local h,oGrid,rs,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.ColumnAutoResize = false
oGrid.ContinueColumnScroll = false
rs = new OleAutoClient("ADOR.Recordset")
	rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
oGrid.DataSource = rs
oGrid.Columns.Item(2).LevelKey = "1"
oGrid.Columns.Item(3).LevelKey = "1"
oGrid.Columns.Item(4).LevelKey = "1"
oGrid.AutoDrag = 9
oGrid.SingleSel = false
var_Items = oGrid.Items
	h = var_Items.ItemByIndex(1)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	h = var_Items.ItemByIndex(3)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	h = var_Items.ItemByIndex(4)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	h = var_Items.ItemByIndex(5)
	// var_Items.SelectItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.SelectItem(h) = True]
	endwith
	// var_Items.LockedItemCount(2) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(2) = 1]
	endwith
	h = var_Items.LockedItem(2,0)
	// var_Items.CellValue(h,0) = "<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ..."
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,0) = "<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ..."]
	endwith
	// var_Items.CellSingleLine(h,0) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellSingleLine(h,0) = False]
	endwith
	// var_Items.CellValueFormat(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 1]
	endwith
	// var_Items.CellHAlignment(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellHAlignment(h,0) = 1]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.ItemDividerLineAlignment(h) = 2
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDividerLineAlignment(h) = 2]
	endwith
oGrid.EndUpdate()

718
Is it possible to change the indentation during the drag and drop

local h,h1,h2,h3,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oGrid.AutoDrag = 3
oGrid.LinesAtRoot = 0
oGrid.HasLines = 1
oGrid.HasButtons = 3
oGrid.ShowFocusRect = false
oGrid.SelBackMode = 1
oGrid.Columns.Add("Task")
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	h1 = var_Items.InsertItem(h,null,"Task 1")
	h2 = var_Items.InsertItem(h1,null,"Task 2")
	h2 = var_Items.InsertItem(h1,null,"Task 3")
	h3 = var_Items.InsertItem(h,null,"Task 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	// var_Items.ExpandItem(h1) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h1]
		TemplateDef = var_Items
		TemplateDef = h1
		Template = [var_Items.ExpandItem(h1) = True]
	endwith
	h = var_Items.AddItem("Group 2")
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.LockedItemCount(2) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(2) = 1]
	endwith
	h = var_Items.LockedItem(2,0)
	// var_Items.CellValue(h,0) = "Click a row, and move by dragging <b>up, down</b> to change the row's parent or <b>left,right</b> to increase or decrease the indentation."
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,0) = "Click a row, and move by dragging <b>up, down</b> to change the row's parent or <b>left,right</b> to increase or decrease the indentation."]
	endwith
	// var_Items.CellSingleLine(h,0) = false
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellSingleLine(h,0) = False]
	endwith
	// var_Items.CellValueFormat(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValueFormat(h,0) = 1]
	endwith
oGrid.EndUpdate()

717
Is it possible to allow moving an item to another, but keeping its indentation

local h,h1,h2,h3,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oGrid.AutoDrag = 2
oGrid.LinesAtRoot = 0
oGrid.HasLines = 2
oGrid.ShowFocusRect = false
oGrid.Columns.Add("Task")
var_Items = oGrid.Items
	h = var_Items.AddItem("Group 1")
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	h1 = var_Items.InsertItem(h,null,"Task 1")
	h2 = var_Items.InsertItem(h,null,"Task 2")
	h3 = var_Items.InsertItem(h,null,"Task 3")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
	h = var_Items.AddItem("Group 2")
	// var_Items.ItemBold(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemBold(h) = True]
	endwith
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
oGrid.EndUpdate()

716
How can I change the row's position to another, by drag and drop. Is it possible

local h1,h2,h3,oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oGrid.AutoDrag = 1
oGrid.Columns.Add("Task")
var_Items = oGrid.Items
	h1 = var_Items.AddItem("Task 1")
	h2 = var_Items.AddItem("Task 2")
	h3 = var_Items.AddItem("Task 3")
oGrid.EndUpdate()

715
Is it possible background color displayed when the mouse passes over an item

local oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Columns.Add("Def")
oGrid.HotBackColor = 0x800000
oGrid.HotForeColor = 0xffffff
var_Items = oGrid.Items
	var_Items.AddItem("Item A")
	var_Items.AddItem("Item B")
	var_Items.AddItem("Item C")
oGrid.EndUpdate()

714
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

local oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Columns.Add("Task")
var_Items = oGrid.Items
	var_Items.AddItem("Task 1")
	var_Items.AddItem("Task 2")
oGrid.EndUpdate()
oGrid.Template = "Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();"

713
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

local oGrid,var_Items,var_Print

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Task 2")
oGrid.EndUpdate()
var_Print = new OleAutoClient("Exontrol.Print")
	var_Print.PrintExt = oGrid.ExecuteTemplate("me")
	var_Print.Preview()

712
How can I apply the same ConditionalFormat on more than 1(one) column (multiple columns and not on item)

local oGrid,var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_ConditionalFormat = oGrid.ConditionalFormats.Add("1","K1")
	var_ConditionalFormat.BackColor = 0xff
	var_ConditionalFormat.ApplyTo = 1 /*0x1 | */
var_ConditionalFormat1 = oGrid.ConditionalFormats.Add("1","K2")
	var_ConditionalFormat1.BackColor = 0xff
	var_ConditionalFormat1.ApplyTo = 2 /*0x2 | */
oGrid.MarkSearchColumn = false
oGrid.DrawGridLines = -2
var_Columns = oGrid.Columns
	var_Columns.Add("Column 1")
	var_Columns.Add("Column 2")
	var_Columns.Add("Column 3")
var_Items = oGrid.Items
	var_Items.AddItem()
	var_Items.AddItem()
	var_Items.AddItem()
oGrid.EndUpdate()

711
Is it possible to add new records and see them in the control's view using the DataSource

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ButtonClick = class::nativeObject_ButtonClick
endwith
*/
// Occurs when user clicks on the cell's button.
function nativeObject_ButtonClick(Item,ColIndex,Key)
	local var_Recordset
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	var_Recordset = oGrid.DataSource
		var_Recordset.AddNew("Task","New-Task")
		var_Recordset.Update()
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? Str(Description) 
return

local h,oGrid,rs,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
rs = new OleAutoClient("ADODB.Recordset")
	rs.Append("Task",8)
	rs.Append("Start",7)
	rs.Append("End",7)
rs.Open()
oGrid.DrawGridLines = -2
oGrid.DetectAddNew = true
oGrid.DetectDelete = true
oGrid.DataSource = rs
var_Items = oGrid.Items
	// var_Items.LockedItemCount(0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.LockedItemCount(0) = 1]
	endwith
	h = var_Items.LockedItem(0,0)
	// var_Items.ItemDivider(h) = 0
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemDivider(h) = 0]
	endwith
	// var_Items.ItemHeight(h) = 22
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ItemHeight(h) = 22]
	endwith
	// var_Items.CellValue(h,0) = "AddNew"
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellValue(h,0) = "AddNew"]
	endwith
	// var_Items.CellHasButton(h,0) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellHasButton(h,0) = True]
	endwith
	// var_Items.CellHAlignment(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellHAlignment(h,0) = 1]
	endwith

710
How can I initiate an OLE Drag and Drop operation in /COM version

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	OLEStartDrag = class::nativeObject_OLEStartDrag
endwith
*/
// Occurs when the OLEDrag method is called.
function nativeObject_OLEStartDrag(Data,AllowedEffects)
	/* Data.SetData("your data to drag") */
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	AllowedEffects = 2
return

local oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Columns.Add("Default")
var_Items = oGrid.Items
	var_Items.AddItem("Item 1")
	var_Items.AddItem("Item 2")
	var_Items.AddItem("Item 3")
	var_Items.AddItem("Item 4")
	var_Items.AddItem("Item 5")
oGrid.OLEDropMode = 1
oGrid.EndUpdate()

709
How can I find the order of the events
/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AfterExpandItem = class::nativeObject_AfterExpandItem
endwith
*/
// Fired after an item is expanded (collapsed).
function nativeObject_AfterExpandItem(Item)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "AfterExpandItem" 
	? Str(Item) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	AnchorClick = class::nativeObject_AnchorClick
endwith
*/
// Occurs when an anchor element is clicked.
function nativeObject_AnchorClick(AnchorID,Options)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "AnchorClick" 
	? Str(AnchorID) 
	? Str(Options) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	BeforeExpandItem = class::nativeObject_BeforeExpandItem
endwith
*/
// Fired before an item is about to be expanded (collapsed).
function nativeObject_BeforeExpandItem(Item,Cancel)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "BeforeExpandItem" 
	? Str(Item) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ButtonClick = class::nativeObject_ButtonClick
endwith
*/
// Occurs when user clicks on the cell's button.
function nativeObject_ButtonClick(Item,ColIndex,Key)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "ButtonClick" 
	? Str(Item) 
	? Str(ColIndex) 
	? Str(Key) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	CellImageClick = class::nativeObject_CellImageClick
endwith
*/
// Fired after the user clicks on the image's cell area.
function nativeObject_CellImageClick(Item,ColIndex)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "CellImageClick" 
	? Str(Item) 
	? Str(ColIndex) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	CellStateChanged = class::nativeObject_CellStateChanged
endwith
*/
// Fired after cell's state has been changed.
function nativeObject_CellStateChanged(Item,ColIndex)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "CellStateChanged" 
	? Str(Item) 
	? Str(ColIndex) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Change = class::nativeObject_Change
endwith
*/
// Occurs when the user changes the cell's content.
function nativeObject_Change(Item,ColIndex,NewValue)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "Change" 
	? Str(Item) 
	? Str(ColIndex) 
	? Str(NewValue) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Click = class::nativeObject_Click
endwith
*/
// Occurs when the user presses and then releases the left mouse button over the grid control.
function nativeObject_Click()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "Click" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ColumnClick = class::nativeObject_ColumnClick
endwith
*/
// Fired after the user clicks on column's header.
function nativeObject_ColumnClick(Column)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "ColumnClick" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	DblClick = class::nativeObject_DblClick
endwith
*/
// Occurs when the user dblclk the left mouse button over an object.
function nativeObject_DblClick(Shift,X,Y)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "DblClick" 
	? Str(Shift) 
	? Str(X) 
	? Str(Y) 
	oGrid.Edit()
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Edit = class::nativeObject_Edit
endwith
*/
// Occurs just before editing the focused cell.
function nativeObject_Edit(Item,ColIndex,Cancel)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "Edit" 
	? Str(Item) 
	? Str(ColIndex) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	EditClose = class::nativeObject_EditClose
endwith
*/
// Occurs when the edit operation ends.
function nativeObject_EditClose()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "EditClose" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	EditOpen = class::nativeObject_EditOpen
endwith
*/
// Occurs when the edit operation starts.
function nativeObject_EditOpen()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "EditOpen" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	FilterChange = class::nativeObject_FilterChange
endwith
*/
// Occurs when filter was changed.
function nativeObject_FilterChange()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "FilterChange" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	FilterChanging = class::nativeObject_FilterChanging
endwith
*/
// Notifies your application that the filter is about to change.
function nativeObject_FilterChanging()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "FilterChanging" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	FocusChanged = class::nativeObject_FocusChanged
endwith
*/
// Occurs when a new cell is focused.
function nativeObject_FocusChanged()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "FocusChanged" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	KeyDown = class::nativeObject_KeyDown
endwith
*/
// Occurs when the user presses a key while an object has the focus.
function nativeObject_KeyDown(KeyCode,Shift)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "KeyDown" 
	? Str(KeyCode) 
	? Str(Shift) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	KeyPress = class::nativeObject_KeyPress
endwith
*/
// Occurs when the user presses and releases an ANSI key.
function nativeObject_KeyPress(KeyAscii)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "KeyPress" 
	? Str(KeyAscii) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	KeyUp = class::nativeObject_KeyUp
endwith
*/
// Occurs when the user releases a key while an object has the focus.
function nativeObject_KeyUp(KeyCode,Shift)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "KeyUp" 
	? Str(KeyCode) 
	? Str(Shift) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	LayoutChanged = class::nativeObject_LayoutChanged
endwith
*/
// Occurs when column's position or column's size is changed.
function nativeObject_LayoutChanged()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "LayoutChanged" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	MouseDown = class::nativeObject_MouseDown
endwith
*/
// Occurs when the user presses a mouse button.
function nativeObject_MouseDown(Button,Shift,X,Y)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "MouseDown" 
	? Str(Button) 
	? Str(Shift) 
	? Str(X) 
	? Str(Y) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	MouseMove = class::nativeObject_MouseMove
endwith
*/
// Occurs when the user moves the mouse.
function nativeObject_MouseMove(Button,Shift,X,Y)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	MouseUp = class::nativeObject_MouseUp
endwith
*/
// Occurs when the user releases a mouse button.
function nativeObject_MouseUp(Button,Shift,X,Y)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "MouseUp" 
	? Str(Button) 
	? Str(Shift) 
	? Str(X) 
	? Str(Y) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	OffsetChanged = class::nativeObject_OffsetChanged
endwith
*/
// Occurs when the scroll position has been changed.
function nativeObject_OffsetChanged(Horizontal,NewVal)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "OffsetChanged" 
	? Str(Horizontal) 
	? Str(NewVal) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	OversizeChanged = class::nativeObject_OversizeChanged
endwith
*/
// Occurs when the right range of the scroll has been changed.
function nativeObject_OversizeChanged(Horizontal,NewVal)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "OversizeChanged" 
	? Str(Horizontal) 
	? Str(NewVal) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	RClick = class::nativeObject_RClick
endwith
*/
// Fired when right mouse button is clicked
function nativeObject_RClick()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "RClick" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ScrollButtonClick = class::nativeObject_ScrollButtonClick
endwith
*/
// Occurs when the user clicks a button in the scrollbar.
function nativeObject_ScrollButtonClick(ScrollBar,ScrollPart)
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "ScrollButtonClick" 
	? Str(ScrollBar) 
	? Str(ScrollPart) 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	SelectionChanged = class::nativeObject_SelectionChanged
endwith
*/
// Fired after a new item has been selected.
function nativeObject_SelectionChanged()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "SelectionChanged" 
return

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	Sort = class::nativeObject_Sort
endwith
*/
// Fired when the control sorts a column.
function nativeObject_Sort()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	? "Sort" 
return

local h,oGrid,var_Column,var_Column1,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Images("gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1BAmBhOCwMGwuDw2ExWJxmIx2HyGLv+TlykUCgABmGYzzObzuczWcKujzOa0ug02hz+r1Wtz2qoCA2QAYG1yk02YA3NMy2Yh8Sh202zx4gA4jxADM5XG4vHACy6ESdjM6XUZiZTMS5bwZSm1c83+yQHCYHk81Q8O7qW18u/9NG3vAf/y83u4PQWQA0ZVADq/z6um6rkuw7TqH+5bYJu+z5vE8z2N02cGweoDfwfCrbQfBqkNzBb6QfDLxp6+LlOs5cSOTEzlm7FYACFFwADvGIAGvGjzOu7MbwHHECQSmUOvS8cGwk20gQc2ycQs4MLvLD8MNtDSfyS+cmyZJzywa96axzDsTw6/x1AAL8xRbF8Vm65jkH/AL8QFNTqR6lsfuDIb2uDKTzTo88FTtIk+PK3SNRDKiew5JVDSnK08NnOUGRClkt0PFEDUjMwAENS4AM2zj4udNznujT1PTgjdGQg8c71RPtESvCL1JrO8lozQUj1nP6d1TKtc0U8dS1jCaNRzGhrxnGthWJYdjUrYwc2ZMMx2NB8czZNk4VLPMstzXD6Q6mltVjPNAT0m1CvnD" ;
 +"tBxBXlI3PRKNzZDtjQ6cd5TQ/TSU0/r/udC0A1Ez1SUja8/QhWVavrSLfpxWNzXZR2CygmVtXXVl03Lg+BV+lV3UjeDgzEL4AXkcb6Pje5LZNDzhuLfrOX/RtT0TQbc5lENSvBi2K5xlFdUHhN1ZhJ9F59WybOU7NjWTFkvxhGT9zIIQAWYHIABFqmnABSsT0HUaNYlI1dZmjNuUDRybzvIVWyDoOc54n8Oyxm9Ta9cSUaLbbg44+b4xiO9nY/pt73u38Tuc52tpdruYxDVyUbBV+gYpu2c7PyGMKTt21cjnW6OvzO8PppUvP/Ljlt/wt/Vvn+v8V1eCdbgaa7fnMi8vyD0TnzGEJXyp/wJ3js98iXe+F3/hwGM3jeQZjTeUznmOT5bTKJyqYcbm2c5bzXpqvsWw4FUkCO473wgB8cD9/znzO14n1+D4/efcTP4fl5+WKvxbbptmqV+B/ni/68R4514AvxeTAR50B3oPNei/iBhFgfErgeR4kBIiSAAJKSiC7PT5wMKIQ4fwfyHDzg2PwD4/B/jgg2PgA48AfjgB+RkeAARwAPGAA8jI4AADgAOMAAZGTyw6YbDkA7ZDaAHgxDyCxGgBw8EBBmJcS4LjAATDweBGoqjgAGP4jQ/AcjwAHBsiQex8gPH+MF7pDxxkB")
oGrid.DrawGridLines = -1
oGrid.LinesAtRoot = -1
oGrid.GridLineStyle = 4
oGrid.AutoEdit = false
oGrid.ExpandOnDblClick = false
var_Columns = oGrid.Columns
	var_Column = var_Columns.Add("Column")
		var_Column.DisplayFilterButton = true
		// var_Column.Def(0) = true
		with (oGrid)
			TemplateDef = [dim var_Column]
			TemplateDef = var_Column
			Template = [var_Column.Def(0) = True]
		endwith
		var_Column.Editor.EditType = 1
	var_Column1 = var_Columns.Add("Button")
		var_Column1.AllowSizing = false
		var_Column1.Width = 18
		// var_Column1.Def(2) = true
		with (oGrid)
			TemplateDef = [dim var_Column1]
			TemplateDef = var_Column1
			Template = [var_Column1.Def(2) = True]
		endwith
var_Items = oGrid.Items
	h = var_Items.AddItem("parent")
	// var_Items.CellImage(h,0) = 1
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.CellImage(h,0) = 1]
	endwith
	var_Items.InsertItem(h,"","child")
	// var_Items.ExpandItem(h) = true
	with (oGrid)
		TemplateDef = [dim var_Items,h]
		TemplateDef = var_Items
		TemplateDef = h
		Template = [var_Items.ExpandItem(h) = True]
	endwith
oGrid.EndUpdate()

708
Is it possible to select a column instead sorting it

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	ColumnClick = class::nativeObject_ColumnClick
endwith
*/
// Fired after the user clicks on column's header.
function nativeObject_ColumnClick(Column)
	/* Column.Selected = True */
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.BeginUpdate()
	oGrid.Columns.Item(0).Selected = false
	oGrid.Columns.Item(1).Selected = false
	oGrid.Items.SelectAll()
	oGrid.EndUpdate()
return

local oGrid,var_Columns,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.MarkSearchColumn = false
oGrid.ShowFocusRect = false
oGrid.SingleSel = false
oGrid.FullRowSelect = 1
oGrid.SortOnClick = 0
var_Columns = oGrid.Columns
	var_Columns.Add("Column1")
	var_Columns.Add("Column2")
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem("One"),1) = "Three"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("One"),1) = "Three"]
	endwith
	// var_Items.CellValue(var_Items.AddItem("Two"),1) = "Four"
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem("Two"),1) = "Four"]
	endwith
	var_Items.SelectAll()
oGrid.EndUpdate()

707
Is it possible to display empty strings for 0 values

local oGrid,var_Column,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Column = oGrid.Columns.Add("Currency")
	var_Column.FormatColumn = "dbl(value) ? currency(dbl(value)) : ``"
	var_Editor = var_Column.Editor
		var_Editor.EditType = 1
		var_Editor.Numeric = 1
var_Items = oGrid.Items
	var_Items.AddItem(1.23)
	var_Items.AddItem(2.34)
	var_Items.AddItem(0)
	var_Items.AddItem(10000.99)

706
Is it possible to display empty strings for 0 values

local oGrid,var_Column,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.Columns.Add("Number")
// oGrid.Columns.Add("Currency").ComputedField = "%0 ? currency(%0) : ``"
var_Column = oGrid.Columns.Add("Currency")
with (oGrid)
	TemplateDef = [dim var_Column]
	TemplateDef = var_Column
	Template = [var_Column.ComputedField = "%0 ? currency(%0) : ``"]
endwith
var_Items = oGrid.Items
	var_Items.AddItem(1.23)
	var_Items.AddItem(2.34)
	var_Items.AddItem(0)
	var_Items.AddItem(10000.99)

705
How can I get the list of items as they are displayed

local oGrid,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.BackColorAlternate = 0xf0f0f0
oGrid.Columns.Add("Names")
var_Items = oGrid.Items
	var_Items.AddItem("Mantel")
	var_Items.AddItem("Mechanik")
	var_Items.AddItem("Motor")
	var_Items.AddItem("Murks")
	var_Items.AddItem("Märchen")
	var_Items.AddItem("Möhren")
	var_Items.AddItem("Mühle")
oGrid.Columns.Item(0).SortOrder = 1
oGrid.EndUpdate()
? Str(oGrid.GetItems(1)) 

704
Is it possible to add new rows, as I type like in Excel

/*
with (this.EXGRIDACTIVEXCONTROL1.nativeObject)
	EditClose = class::nativeObject_EditClose
endwith
*/
// Occurs when the edit operation ends.
function nativeObject_EditClose()
	oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
	oGrid.Items.AddItem("")
return

local oGrid,var_Editor

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.AutoEdit = true
// oGrid.Columns.Add("Default").Editor.EditType = 1
var_Editor = oGrid.Columns.Add("Default").Editor
with (oGrid)
	TemplateDef = [dim var_Editor]
	TemplateDef = var_Editor
	Template = [var_Editor.EditType = 1]
endwith
oGrid.FullRowSelect = 0
oGrid.Items.AddItem("")
oGrid.DrawGridLines = -1
oGrid.ScrollBars = 15
oGrid.EndUpdate()

703
Is posible to reduce the size of the picture to be shown in the column's caption

local oGrid,var_Column,var_Column1

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
oGrid.Template = [HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"] // oGrid.HTMLPicture("pic1") = "c:\exontrol\images\zipdisk.gif"
oGrid.HeaderHeight = 48
// oGrid.Columns.Add("DefaultSize").HTMLCaption = "Default-Size <img>pic1</img> Picture"
var_Column = oGrid.Columns.Add("DefaultSize")
with (oGrid)
	TemplateDef = [dim var_Column]
	TemplateDef = var_Column
	Template = [var_Column.HTMLCaption = "Default-Size <img>pic1</img> Picture"]
endwith
// oGrid.Columns.Add("CustomSize").HTMLCaption = "Custom-Size <img>pic1:16</img> Picture"
var_Column1 = oGrid.Columns.Add("CustomSize")
with (oGrid)
	TemplateDef = [dim var_Column1]
	TemplateDef = var_Column1
	Template = [var_Column1.HTMLCaption = "Custom-Size <img>pic1:16</img> Picture"]
endwith
oGrid.EndUpdate()

702
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column

local oGrid,var_Column,var_ConditionalFormat,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
oGrid.BeginUpdate()
var_ConditionalFormat = oGrid.ConditionalFormats.Add("1")
	var_ConditionalFormat.Bold = true
	var_ConditionalFormat.ForeColor = 0xff
	var_ConditionalFormat.ApplyTo = 1 /*0x1 | */
oGrid.Columns.Add("C1")
var_Column = oGrid.Columns.Add("C2")
	var_Column.HeaderBold = true
	var_Column.HTMLCaption = "<fgcolor=FF0000>C2"
var_Items = oGrid.Items
	// var_Items.CellValue(var_Items.AddItem(10),1) = 11
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(10),1) = 11]
	endwith
	// var_Items.CellValue(var_Items.AddItem(12),1) = 13
	with (oGrid)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.CellValue(AddItem(12),1) = 13]
	endwith
oGrid.EndUpdate()

701
How can I filter the check-boxes (method 2)

local oGrid,var_Column,var_Editor,var_Items

oGrid = form.EXGRIDACTIVEXCONTROL1.nativeObject
var_Column = oGrid.Columns.Add("Check")
	var_Editor = var_Column.Editor
		var_Editor.EditType = 19
		// var_Editor.Option(17) = 1
		with (oGrid)
			TemplateDef = [dim var_Editor]
			TemplateDef = var_Editor
			Template = [var_Editor.Option(17) = 1]
		endwith
	var_Column.DisplayFilterButton = true
	var_Column.DisplayFilterPattern = false
	var_Column.CustomFilter = "checked||-1|||unchecked||0"
var_Items = oGrid.Items
	var_Items.AddItem(true)
	var_Items.AddItem(true)
	var_Items.AddItem(false)
	var_Items.AddItem(true)
	var_Items.AddItem(false)
	var_Items.AddItem(true)
	var_Items.AddItem(false)